コード例 #1
0
        static void Unpack(string PakPath)
        {
            Stream Packget = new StreamReader(PakPath).BaseStream;
            var    Files   = PAC.Extract(Packget);

            string ExDir = PakPath + "~\\";

            foreach (var File in Files)
            {
                string Path = ExDir + File.FileName;
                if (!Directory.Exists(System.IO.Path.GetDirectoryName(Path)))
                {
                    Directory.CreateDirectory(System.IO.Path.GetDirectoryName(Path));
                }

                Console.WriteLine("{0:X8} \"{1}\"", File.Content.Length, File.FileName);
                using (var Output = new StreamWriter(Path).BaseStream) {
                    File.Content.CopyTo(Output, 1024 * 1024);
                    File.Content.Close();
                    Output.Close();
                }
            }

            Packget.Close();
        }
コード例 #2
0
        public static void LoadNextPacs(string nudFileName, ModelContainer modelContainer)
        {
            // Read pacs to hide meshes.
            string pacDirectory = nudFileName.Replace("model.nud", "");

            if (!Directory.Exists(pacDirectory))
            {
                return;
            }

            string[] pacs = Directory.GetFiles(pacDirectory, "*.pac");
            foreach (string s in pacs)
            {
                PAC p = new PAC();
                p.Read(s);
                byte[] data;
                if (p.Files.TryGetValue("display", out data))
                {
                    MTA m = new MTA();
                    m.read(new FileData(data));
                    modelContainer.NUD.ApplyMta(m, 0);
                }
                if (p.Files.TryGetValue("default.mta", out data))
                {
                    MTA m = new MTA();
                    m.read(new FileData(data));
                    modelContainer.NUD.ApplyMta(m, 0);
                }
            }
        }
コード例 #3
0
 public SarifControl(PAC pac)
 {
     this.pac = pac;
     InitializeComponent();
     DoubleBuffered = true;
     Reset();
 }
コード例 #4
0
 public ScopeControl(PAC pac)
 {
     this.pac   = pac;
     serviceUrl = new PACClientInfo().ServiceUrl;
     language   = null;
     InitializeComponent();
     originalSize = Size;
 }
コード例 #5
0
        public ActionResult Descargar(Guid Id)
        {
            CFDI Factura = db.GetCFDI(Id, 1).First();

            byte[] XML;
            PAC    PAC = db.PAC.Where(x => x.Id == Factura.IdProveedor).FirstOrDefault();

            if (Factura.Cancelado == true)
            {
                try {
                    XML = System.IO.File.ReadAllBytes(Server.MapPath("~/Facturas/" + PAC.RFC + "/Cancelaciones") + "/Cancelacion_" + Factura.Folio + ".xml");
                } catch (Exception ex) {
                    XML = Factura.XML;
                }

                MemoryStream xml = new MemoryStream(XML);
                using (ZipFile zip = new ZipFile())
                {
                    MemoryStream memory = new MemoryStream();
                    zip.AddEntry("Factura_Cancelada_" + DateTime.Now.ToString("MM_dd_yyyy") + ".xml", xml);
                    zip.Save(memory);
                    memory.Seek(0, SeekOrigin.Begin);
                    return(File(memory, "application/zip", "Factura.zip"));
                }
            }
            else
            {
                XML = Factura.XML;
                byte[]       PDF = System.IO.File.ReadAllBytes(Server.MapPath(Factura.Ruta) + ".pdf");
                MemoryStream xml = new MemoryStream(XML);
                MemoryStream pdf = new MemoryStream(PDF);
                using (ZipFile zip = new ZipFile())
                {
                    MemoryStream memory = new MemoryStream();
                    zip.AddEntry("Factura_" + Factura.Folio + "_" + DateTime.Now.ToString("MM_dd_yyyy") + ".xml", xml);
                    zip.AddEntry("Factura_" + Factura.Folio + "_" + DateTime.Now.ToString("MM_dd_yyyy") + ".pdf", pdf);
                    zip.Save(memory);
                    memory.Seek(0, SeekOrigin.Begin);
                    return(File(memory, "application/zip", "Factura.zip"));
                }
            }
        }
コード例 #6
0
        static void Pack(string BaseDir, string NewPak)
        {
            if (!BaseDir.EndsWith("\\"))
            {
                BaseDir += "\\";
            }

            string[] Files   = ListDir(BaseDir);
            var      Entries = new UnisonShiftManager.File[Files.LongLength];

            for (uint i = 0; i < Entries.LongLength; i++)
            {
                Entries[i] = new UnisonShiftManager.File()
                {
                    FileName = Files[i],
                    Content  = new StreamReader(BaseDir + Files[i]).BaseStream
                };
            }

            PAC.Repack(Entries, new StreamWriter(NewPak).BaseStream, true);
        }
コード例 #7
0
ファイル: MainWindow.xaml.cs プロジェクト: ArtStudy/ToE
        public MainWindow()
        {
            InitializeComponent();

            Messenger.Default.Register <NavigatorPageMessege>(this, NavigatorPageAction);


            var data = new PAC();

            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 123
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345678
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 123
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345678
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 123
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.Unknown, Name = "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", Identifier = 12345678
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.Unknown, Name = "1234", Identifier = 12345678
            });

            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345678
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 123
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345678
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 123
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.txt, Identifier = 12345
            });
            data.Items.Add(new Item()
            {
                Data = "ТЕКСТ".GenerateStreamFromString(), FileType = FileTypes.Unknown, Name = "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", Identifier = 12345678
            });
            var str = data.Serialization();
            var r   = new PAC(str);

            using (FileStream fs = new FileStream("1.txt", FileMode.OpenOrCreate))
            {
                ((MemoryStream)str).WriteTo(fs);
                // fs.CopyTo(str);
            }



            foreach (var item in r.Items)
            {
                StreamReader reader = new StreamReader(item.Data);
                string       text   = reader.ReadToEnd();
                Debug.WriteLine(item.FileType + " " + item.Identifier + " " + text + " " + item.Name);
            }
        }
コード例 #8
0
ファイル: PacPackCommand.cs プロジェクト: Deijin27/RanseiLink
    public ValueTask ExecuteAsync(IConsole console)
    {
        PAC.Pack(FolderPath, FileTypeNumbers, DestinationFile);

        return(default);
コード例 #9
0
    public ValueTask ExecuteAsync(IConsole console)
    {
        PAC.Unpack(FilePath, DestinationFolder);

        return default;
    }
コード例 #10
0
        /// <summary>
        /// Build cargo report.
        /// Original from https://www.cbp.gov/sites/default/files/documents/cuscar_012_30_3.txt
        /// </summary>
        static TSCUSCAR BuildCargoReport(string controlNumber)
        {
            var result = new TSCUSCAR();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01                      = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02                           = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "CUSCAR";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "03B";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentnamecode_01             = "85";
            result.BGM.DOCUMENTMESSAGENAME_01.Documentname_04                 = "STANDARD";
            result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02                       = new C106();
            result.BGM.DOCUMENTMESSAGEIDENTIFICATION_02.Documentidentifier_01 = "LOCKKH04112206";
            result.BGM.Messagefunctioncode_03 = "22";

            //  Repeating DTM
            result.DTM = new List <DTM>();

            var dtm1 = new DTM();

            dtm1.DATETIMEPERIOD_01 = new C507();
            dtm1.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "132";
            dtm1.DATETIMEPERIOD_01.Dateortimeorperiodtext_02       = "200412301200";
            dtm1.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "203";
            result.DTM.Add(dtm1);

            //  Repeating LOC
            result.LOC = new List <LOC>();

            var loc1 = new LOC();

            loc1.Locationfunctioncodequalifier_01 = "60";
            loc1.LOCATIONIDENTIFICATION_02        = new C517();
            loc1.LOCATIONIDENTIFICATION_02.Locationnamecode_01           = "0901";
            loc1.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "77";
            result.LOC.Add(loc1);

            //  Repeating RFF Groups
            result.RFFLoop = new List <Loop_RFF_CUSCAR>();

            //  Begin RFF Group
            var rffLoop1 = new Loop_RFF_CUSCAR();

            rffLoop1.RFF = new RFF();
            rffLoop1.RFF.REFERENCE_01 = new C506();
            rffLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "ABO";
            rffLoop1.RFF.REFERENCE_01.Referenceidentifier_02    = "ABO04100000";

            //  End RFF Group
            result.RFFLoop.Add(rffLoop1);

            //  Repeating RFF Groups
            result.NADLoop = new List <Loop_NAD_CUSCAR>();

            //  Begin NAD Group 1
            var nadLoop1 = new Loop_NAD_CUSCAR();

            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyfunctioncodequalifier_01 = "CA";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01            = "LOCK";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "172";
            nadLoop1.NAD.STREET_05 = new C059();
            nadLoop1.NAD.STREET_05.Streetandnumberorpostofficeboxidentifier_01 = "11107 SUNSET HILLS ROAD";
            nadLoop1.NAD.STREET_05.Streetandnumberorpostofficeboxidentifier_02 = "77705 ARLINGTON ROAD";
            nadLoop1.NAD.Cityname_06 = "RESTON";
            nadLoop1.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819();
            nadLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01   = "VA";
            nadLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163";
            nadLoop1.NAD.Postalidentificationcode_08 = "20190";

            //  End NAD Group 1
            result.NADLoop.Add(nadLoop1);

            //  Begin NAD Group 2
            var nadLoop2 = new Loop_NAD_CUSCAR();

            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyfunctioncodequalifier_01 = "VW";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01            = "0000041047";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109";
            nadLoop2.NAD.PARTYNAME_04 = new C080();
            nadLoop2.NAD.PARTYNAME_04.Partyname_01 = "AADLER";
            nadLoop2.NAD.PARTYNAME_04.Partyname_02 = "KEN";

            //  End NAD Group 2
            result.NADLoop.Add(nadLoop2);

            //  Repeating FTX
            result.FTX = new List <FTX>();

            var ftx1 = new FTX();

            ftx1.Textsubjectcodequalifier_01 = "INS";
            ftx1.TEXTREFERENCE_03            = new C107();
            ftx1.TEXTREFERENCE_03.Freetextdescriptioncode_01 = "INSURANCE INFOR";
            ftx1.TEXTLITERAL_04             = new C108();
            ftx1.TEXTLITERAL_04.Freetext_01 = "NAMESTATE FARM INSURANCE COMPANY";
            ftx1.TEXTLITERAL_04.Freetext_02 = "PLCYQO123456789";
            ftx1.TEXTLITERAL_04.Freetext_03 = "AMNT100000";
            ftx1.TEXTLITERAL_04.Freetext_04 = "YEAR2004";
            result.FTX.Add(ftx1);

            //  Repeating TDT Groups
            result.TDTLoop = new List <Loop_TDT_CUSCAR>();

            //  Begin TDT Group
            var tdtLoop1 = new Loop_TDT_CUSCAR();

            tdtLoop1.TDT = new TDT();
            tdtLoop1.TDT.Transportstagecodequalifier_01 = "11";
            tdtLoop1.TDT.MODEOFTRANSPORT_03             = new C220();
            tdtLoop1.TDT.MODEOFTRANSPORT_03.Transportmodenamecode_01 = "03";
            tdtLoop1.TDT.TRANSPORTMEANS_04 = new C001();
            tdtLoop1.TDT.TRANSPORTMEANS_04.Transportmeansdescription_04 = "BT";
            tdtLoop1.TDT.Transitdirectionindicatorcode_06 = "I";
            tdtLoop1.TDT.TRANSPORTIDENTIFICATION_08       = new C222();
            tdtLoop1.TDT.TRANSPORTIDENTIFICATION_08.Codelistidentificationcode_02       = "109";
            tdtLoop1.TDT.TRANSPORTIDENTIFICATION_08.Transportmeansidentificationname_04 = "10000324";

            //  End TDT Group
            result.TDTLoop.Add(tdtLoop1);

            //  Repeating EQD Groups
            result.EQDLoop = new List <Loop_EQD_CUSCAR>();

            //  Begin EQD Group
            var eqdLoop1 = new Loop_EQD_CUSCAR();

            eqdLoop1.EQD = new EQD();
            eqdLoop1.EQD.Equipmenttypecodequalifier_01 = "BI";
            eqdLoop1.EQD.EQUIPMENTIDENTIFICATION_02    = new C237();
            eqdLoop1.EQD.EQUIPMENTIDENTIFICATION_02.Equipmentidentifier_01        = "10000325";
            eqdLoop1.EQD.EQUIPMENTIDENTIFICATION_02.Codelistidentificationcode_02 = "109";

            //  Repeating SEL
            eqdLoop1.SEL = new List <SEL>();

            var selEqd = new SEL();

            selEqd.Transportunitsealidentifier_01 = "SEALEQUNO001";
            eqdLoop1.SEL.Add(selEqd);

            //  Repeating EQD RFF Groups
            eqdLoop1.RFFLoop = new List <Loop_RFF_CUSCAR_4>();

            //  Begin RFF Group
            var rffEqdLoop1 = new Loop_RFF_CUSCAR_4();

            rffEqdLoop1.RFF = new RFF();
            rffEqdLoop1.RFF.REFERENCE_01 = new C506();
            rffEqdLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "ABZ";
            rffEqdLoop1.RFF.REFERENCE_01.Referenceidentifier_02    = "EQU123";

            //  Repeating LOC
            rffEqdLoop1.LOC = new List <LOC>();

            var locRff1 = new LOC();

            locRff1.Locationfunctioncodequalifier_01 = "89";
            locRff1.LOCATIONIDENTIFICATION_02        = new C517();
            locRff1.LOCATIONIDENTIFICATION_02.Locationnamecode_01           = "VA";
            locRff1.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "163";
            rffEqdLoop1.LOC.Add(locRff1);

            //  End RFF Group
            eqdLoop1.RFFLoop.Add(rffEqdLoop1);

            //  End EQD Group
            result.EQDLoop.Add(eqdLoop1);

            //  Repeating CNI Groups
            result.CNILoop = new List <Loop_CNI_CUSCAR>();

            //  Begin CNI Group
            var cniLoop1 = new Loop_CNI_CUSCAR();

            cniLoop1.CNI = new CNI();
            cniLoop1.CNI.Consolidationitemnumber_01 = "3741";
            cniLoop1.CNI.DOCUMENTMESSAGEDETAILS_02  = new C503();
            cniLoop1.CNI.DOCUMENTMESSAGEDETAILS_02.Documentstatuscode_02 = "23";

            //  Repeating DOC
            cniLoop1.DOC = new List <DOC>();

            var docCni1 = new DOC();

            docCni1.DOCUMENTMESSAGENAME_01 = new C002();
            docCni1.DOCUMENTMESSAGENAME_01.Documentnamecode_01 = "714";
            docCni1.DOCUMENTMESSAGENAME_01.Documentname_04     = "61";
            docCni1.DOCUMENTMESSAGEDETAILS_02 = new C503();
            docCni1.DOCUMENTMESSAGEDETAILS_02.Documentidentifier_01        = "KH041122106";
            docCni1.DOCUMENTMESSAGEDETAILS_02.Documentsourcedescription_03 = "LOCK";
            cniLoop1.DOC.Add(docCni1);

            //  Repeating RFF CNI Groups
            cniLoop1.RFFLoop = new List <Loop_RFF_CUSCAR_2>();

            //  Begin RFF CNI Group
            var rffCniLoop1 = new Loop_RFF_CUSCAR_2();

            rffCniLoop1.RFF = new RFF();
            rffCniLoop1.RFF.REFERENCE_01 = new C506();
            rffCniLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "AAM";
            rffCniLoop1.RFF.REFERENCE_01.Referenceidentifier_02    = "LOCKKH041122106";

            //  Repeating CNT
            rffCniLoop1.CNT = new List <CNT>();

            var cntRff1 = new CNT();

            cntRff1.CONTROL_01 = new C270();
            cntRff1.CONTROL_01.Controltotaltypecodequalifier_01 = "58";
            cntRff1.CONTROL_01.Controltotalquantity_02          = "158";
            rffCniLoop1.CNT.Add(cntRff1);

            //  Repeating LOC
            rffCniLoop1.LOC = new List <LOC>();

            var locRff2 = new LOC();

            locRff2.Locationfunctioncodequalifier_01 = "9";
            locRff2.LOCATIONIDENTIFICATION_02        = new C517();
            locRff2.LOCATIONIDENTIFICATION_02.Locationnamecode_01           = "U0107";
            locRff2.LOCATIONIDENTIFICATION_02.Codelistidentificationcode_02 = "78";
            rffCniLoop1.LOC.Add(locRff2);

            //  Repeating GEI
            rffCniLoop1.GEI = new List <GEI>();

            var geiRff1 = new GEI();

            geiRff1.Processinginformationcodequalifier_01 = "7";
            geiRff1.PROCESSINGINDICATOR_02 = new C012();
            geiRff1.PROCESSINGINDICATOR_02.Processingindicatordescriptioncode_01 = "135";
            rffCniLoop1.GEI.Add(geiRff1);

            //  Repeating TDT RFF Groups
            rffCniLoop1.TDTLoop = new List <Loop_TDT_CUSCAR_2>();

            //  Begin TDT RFF Group
            var tdtRffLoop1 = new Loop_TDT_CUSCAR_2();

            tdtRffLoop1.TDT = new TDT();
            tdtRffLoop1.TDT.Transportstagecodequalifier_01 = "11";

            //  Repeating DTM
            tdtRffLoop1.DTM = new List <DTM>();

            var dtmRff1 = new DTM();

            dtmRff1.DATETIMEPERIOD_01 = new C507();
            dtmRff1.DATETIMEPERIOD_01.Dateortimeorperiodfunctioncodequalifier_01 = "133";
            dtmRff1.DATETIMEPERIOD_01.Dateortimeorperiodtext_02       = "20041230";
            dtmRff1.DATETIMEPERIOD_01.Dateortimeorperiodformatcode_03 = "102";
            tdtRffLoop1.DTM.Add(dtmRff1);

            //  Repeating RFF TDT Groups
            tdtRffLoop1.RFFLoop = new List <Loop_RFF_CUSCAR_3>();

            //  Begin RFF TDT Group
            var rffTdtLoop1 = new Loop_RFF_CUSCAR_3();

            rffTdtLoop1.RFF = new RFF();
            rffTdtLoop1.RFF.REFERENCE_01 = new C506();
            rffTdtLoop1.RFF.REFERENCE_01.Referencecodequalifier_01 = "AWM";

            //  Repeating TSR
            rffTdtLoop1.TSR = new List <TSR>();

            var tsrRff1 = new TSR();

            tsrRff1.CONTRACTANDCARRIAGECONDITION_01 = new C536();
            tsrRff1.CONTRACTANDCARRIAGECONDITION_01.Contractandcarriageconditioncode_01 = "9";
            rffTdtLoop1.TSR.Add(tsrRff1);

            //  End RFF TDTGroup
            tdtRffLoop1.RFFLoop.Add(rffTdtLoop1);

            //  End TDT RFF Group
            rffCniLoop1.TDTLoop.Add(tdtRffLoop1);

            //  Repeating NAD RFF Groups
            rffCniLoop1.NADLoop = new List <Loop_NAD_CUSCAR_2>();

            //  Begin NAD RFF Group 1
            var nadRffLoop1 = new Loop_NAD_CUSCAR_2();

            nadRffLoop1.NAD = new NAD();
            nadRffLoop1.NAD.Partyfunctioncodequalifier_01 = "CN";
            nadRffLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadRffLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01            = "65424";
            nadRffLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109";
            nadRffLoop1.NAD.NAMEANDADDRESS_03 = new C058();
            nadRffLoop1.NAD.NAMEANDADDRESS_03.Nameandaddressdescription_01 = "1234 MAIN STREET";
            nadRffLoop1.NAD.PARTYNAME_04 = new C080();
            nadRffLoop1.NAD.PARTYNAME_04.Partyname_01 = "KATHY SMITH";
            nadRffLoop1.NAD.Cityname_06 = "BELTSVILLE";
            nadRffLoop1.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819();
            nadRffLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01   = "MD";
            nadRffLoop1.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163";
            nadRffLoop1.NAD.Postalidentificationcode_08 = "20708";
            nadRffLoop1.NAD.Countrynamecode_09          = "US";

            //  Repeating CTA NAD Groups
            nadRffLoop1.CTALoop = new List <Loop_CTA_CUSCAR>();

            //  Begin CTA NAD Group
            var ctaNadLoop1 = new Loop_CTA_CUSCAR();

            ctaNadLoop1.CTA = new CTA();
            ctaNadLoop1.CTA.Contactfunctioncode_01 = "IC";

            //  Repeating COM
            ctaNadLoop1.COM = new List <COM>();

            var comCta1 = new COM();

            //  Repeating C076
            comCta1.COMMUNICATIONCONTACT_01 = new List <C076>();
            var c076Com1 = new C076();

            c076Com1.Communicationaddressidentifier_01    = "8005551212";
            c076Com1.Communicationaddresscodequalifier_02 = "TE";
            comCta1.COMMUNICATIONCONTACT_01.Add(c076Com1);
            ctaNadLoop1.COM.Add(comCta1);

            //  End CTA NAD Group
            nadRffLoop1.CTALoop.Add(ctaNadLoop1);

            //  End NAD RFF Group 1
            rffCniLoop1.NADLoop.Add(nadRffLoop1);

            //  Begin NAD RFF Group 2
            var nadRffLoop2 = new Loop_NAD_CUSCAR_2();

            nadRffLoop2.NAD = new NAD();
            nadRffLoop2.NAD.Partyfunctioncodequalifier_01 = "IM";
            nadRffLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadRffLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01            = "00010";
            nadRffLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109";
            nadRffLoop2.NAD.NAMEANDADDRESS_03 = new C058();
            nadRffLoop2.NAD.NAMEANDADDRESS_03.Nameandaddressdescription_01 = "1234 MAIN STREET";
            nadRffLoop2.NAD.PARTYNAME_04 = new C080();
            nadRffLoop2.NAD.PARTYNAME_04.Partyname_01 = "KATHY SMITH";
            nadRffLoop2.NAD.Cityname_06 = "BELTSVILLE";
            nadRffLoop2.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819();
            nadRffLoop2.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01   = "MD";
            nadRffLoop2.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163";
            nadRffLoop2.NAD.Postalidentificationcode_08 = "20708";
            nadRffLoop2.NAD.Countrynamecode_09          = "US";

            //  Repeating CTA NAD Groups
            nadRffLoop2.CTALoop = new List <Loop_CTA_CUSCAR>();

            //  Begin CTA NAD Group
            var ctaNadLoop2 = new Loop_CTA_CUSCAR();

            ctaNadLoop2.CTA = new CTA();
            ctaNadLoop2.CTA.Contactfunctioncode_01 = "IC";

            //  Repeating COM
            ctaNadLoop2.COM = new List <COM>();

            var comCta2 = new COM();

            //  Repeating C076
            comCta2.COMMUNICATIONCONTACT_01 = new List <C076>();
            var c076Com2 = new C076();

            c076Com2.Communicationaddressidentifier_01    = "8005551212";
            c076Com2.Communicationaddresscodequalifier_02 = "TE";
            comCta2.COMMUNICATIONCONTACT_01.Add(c076Com2);
            ctaNadLoop2.COM.Add(comCta2);

            //  End CTA NAD Group
            nadRffLoop2.CTALoop.Add(ctaNadLoop2);

            //  End NAD RFF Group 2
            rffCniLoop1.NADLoop.Add(nadRffLoop2);

            //  Begin NAD RFF Group 3
            var nadRffLoop3 = new Loop_NAD_CUSCAR_2();

            nadRffLoop3.NAD = new NAD();
            nadRffLoop3.NAD.Partyfunctioncodequalifier_01 = "OS";
            nadRffLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadRffLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyidentifier_01            = "27190";
            nadRffLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistidentificationcode_02 = "109";
            nadRffLoop3.NAD.NAMEANDADDRESS_03 = new C058();
            nadRffLoop3.NAD.NAMEANDADDRESS_03.Nameandaddressdescription_01 = "1234 MAIN STREET";
            nadRffLoop3.NAD.PARTYNAME_04 = new C080();
            nadRffLoop3.NAD.PARTYNAME_04.Partyname_01 = "KATHY SMITH";
            nadRffLoop3.NAD.Cityname_06 = "BELTSVILLE";
            nadRffLoop3.NAD.COUNTRYSUBENTITYDETAILS_07 = new C819();
            nadRffLoop3.NAD.COUNTRYSUBENTITYDETAILS_07.Countrysubentitynamecode_01   = "MD";
            nadRffLoop3.NAD.COUNTRYSUBENTITYDETAILS_07.Codelistidentificationcode_02 = "163";
            nadRffLoop3.NAD.Postalidentificationcode_08 = "20708";
            nadRffLoop3.NAD.Countrynamecode_09          = "US";

            //  Repeating CTA NAD Groups
            nadRffLoop3.CTALoop = new List <Loop_CTA_CUSCAR>();

            //  Begin CTA NAD Group
            var ctaNadLoop3 = new Loop_CTA_CUSCAR();

            ctaNadLoop3.CTA = new CTA();
            ctaNadLoop3.CTA.Contactfunctioncode_01 = "IC";

            //  Repeating COM
            ctaNadLoop3.COM = new List <COM>();

            var comCta3 = new COM();

            //  Repeating C076
            comCta3.COMMUNICATIONCONTACT_01 = new List <C076>();
            var c076Com3 = new C076();

            c076Com3.Communicationaddressidentifier_01    = "8005551212";
            c076Com3.Communicationaddresscodequalifier_02 = "TE";
            comCta3.COMMUNICATIONCONTACT_01.Add(c076Com2);
            ctaNadLoop3.COM.Add(comCta3);

            //  End CTA NAD Group
            nadRffLoop3.CTALoop.Add(ctaNadLoop3);

            //  End NAD RFF Group 3
            rffCniLoop1.NADLoop.Add(nadRffLoop3);

            //  Repeating GID RFF Groups
            rffCniLoop1.GIDLoop = new List <Loop_GID_CUSCAR>();

            //  Begin GID RFF Group
            var gidRffLoop1 = new Loop_GID_CUSCAR();

            gidRffLoop1.GID = new GID();
            gidRffLoop1.GID.Goodsitemnumber_01 = "1";

            //  Repeating PAC
            gidRffLoop1.PAC = new List <PAC>();

            var pacGid1 = new PAC();

            pacGid1.Packagequantity_01 = "158";
            pacGid1.PACKAGETYPE_03     = new C202();
            pacGid1.PACKAGETYPE_03.Packagetypedescriptioncode_01 = "COL";
            gidRffLoop1.PAC.Add(pacGid1);

            //  Repeating FTX
            gidRffLoop1.FTX = new List <FTX>();

            var ftxGid1 = new FTX();

            ftxGid1.Textsubjectcodequalifier_01 = "AAA";
            ftxGid1.TEXTLITERAL_04             = new C108();
            ftxGid1.TEXTLITERAL_04.Freetext_01 = "IRON COIL";
            ftxGid1.TEXTLITERAL_04.Freetext_02 = "SHEET METAL";
            gidRffLoop1.FTX.Add(ftxGid1);

            //  Repeating MEA
            gidRffLoop1.MEA = new List <MEA>();

            var meaGid1 = new MEA();

            meaGid1.Measurementpurposecodequalifier_01 = "AAI";
            meaGid1.VALUERANGE_03 = new C174();
            meaGid1.VALUERANGE_03.Measurementunitcode_01 = "K";
            meaGid1.VALUERANGE_03.Measure_02             = "750";
            gidRffLoop1.MEA.Add(meaGid1);

            //  Repeating SGP
            gidRffLoop1.SGP = new List <SGP>();

            var sgpGid1 = new SGP();

            sgpGid1.EQUIPMENTIDENTIFICATION_01 = new C237();
            sgpGid1.EQUIPMENTIDENTIFICATION_01.Equipmentidentifier_01        = "10000325";
            sgpGid1.EQUIPMENTIDENTIFICATION_01.Codelistidentificationcode_02 = "109";
            gidRffLoop1.SGP.Add(sgpGid1);

            //  End GID RFF Group
            rffCniLoop1.GIDLoop.Add(gidRffLoop1);

            //  End RFF CNI Group
            cniLoop1.RFFLoop.Add(rffCniLoop1);

            //  End CNI Group
            result.CNILoop.Add(cniLoop1);

            return(result);
        }
コード例 #11
0
ファイル: cfdFacturaXmlWorker.cs プロジェクト: tiiselam/mx01
        /// <summary>
        /// Ejecuta la generación de archivos xml y pdf en un thread independiente
        /// </summary>
        /// <param name="e">trxVentas</param>
        protected override void OnDoWork(DoWorkEventArgs e)
        {
            try
            {
                String msj = String.Empty;
                ReportProgress(0, "Revisando configuración...\r\n");
                object[] args = e.Argument as object[];
                vwCfdTransaccionesDeVenta trxVenta = (vwCfdTransaccionesDeVenta)args[0];
                trxVenta.Rewind();                                                          //move to first record

                int                   errores = 0; int i = 1;
                string                antiguoIdCertificado = "";
                XmlDocument           sello                = new XmlDocument();
                TecnicaDeEncriptacion criptografo          = null;
                XmlDocument           comprobante          = new XmlDocument();
                XmlDocumentFragment   addenda;
                cfdReglasFacturaXml   DocVenta     = new cfdReglasFacturaXml(_Conex, _Param); //log de facturas xml emitidas y anuladas
                ReglasME              maquina      = new ReglasME(_Param);
                ValidadorXML          validadorxml = new ValidadorXML(_Param);
                TransformerXML        loader       = new TransformerXML(_Param);

                PAC    representanteSat = new PAC(trxVenta.Ruta_clavePac, trxVenta.Contrasenia_clavePac, _Param);
                String Sello            = string.Empty;

                ReportProgress(0, "Iniciando proceso...\r\n");
                do
                {
                    _Param.PrefijoDefaultFactura = trxVenta.Sopnumbe.Substring(_Param.PosicionPrefijoFactura, 1);
                    msj = String.Empty;
                    try
                    {
                        if (CancellationPending)
                        {
                            e.Cancel = true; return;
                        }

                        if (trxVenta.Estado.Equals("no emitido") &&
                            maquina.ValidaTransicion(_Param.tipoDoc, "EMITE XML Y PDF", trxVenta.EstadoActual, "emitido/impreso"))
                        {
                            if (trxVenta.Voidstts == 0)  //documento no anulado
                            {
                                //Cargar los datos del certificado por cada nuevo Id de certificado asociado al documento de venta
                                if (!trxVenta.ID_Certificado.Equals(antiguoIdCertificado))
                                {
                                    criptografo          = new TecnicaDeEncriptacion(trxVenta.Ruta_clave, trxVenta.Contrasenia_clave, trxVenta.Ruta_certificado.Trim(), trxVenta.Ruta_certificado.Replace(".cer", ".pem").Trim());
                                    antiguoIdCertificado = trxVenta.ID_Certificado;
                                }

                                comprobante.LoadXml(trxVenta.ComprobanteXml);
                                comprobante.DocumentElement.SetAttribute("NoCertificado", criptografo.noCertificado);

                                loader.getCadenaOriginal(comprobante);                   //Obtener cadena original del CFD

                                Sello = criptografo.obtieneSello(loader.cadenaOriginal); //Crear el archivo xml y sellarlo
                                comprobante.DocumentElement.SetAttribute("Sello", Sello);
                                comprobante.DocumentElement.SetAttribute("Certificado", criptografo.certificadoFormatoPem);

                                if (!_Conex.IntegratedSecurity)                         //para testeo:
                                {
                                    comprobante.Save(new XmlTextWriter(trxVenta.Sopnumbe.Trim() + "tst.xml", Encoding.UTF8));
                                }

                                validadorxml.ValidarXSD(comprobante);                   //Validar el esquema del archivo xml

                                representanteSat.comprobanteFiscal = comprobante;
                                representanteSat.timbraCFD();                           //agregar sello al comprobante

                                //Agregar el nodo addenda si existe
                                if (trxVenta.Addenda != null && trxVenta.Addenda.Length > 0)
                                {
                                    addenda          = comprobante.CreateDocumentFragment();
                                    addenda.InnerXml = trxVenta.Addenda;
                                    comprobante.DocumentElement.AppendChild(addenda);
                                }

                                //Guarda el archivo xml, genera el cbb y el pdf.
                                //Luego anota en la bitácora la factura emitida o el error al generar cbb o pdf.
                                DocVenta.AlmacenaEnRepositorio(trxVenta, comprobante, maquina, representanteSat.Uuid, Sello);

                                //CodigoDeBarras cbb = new CodigoDeBarras();
                                //cbb.GenerarQRBidimensional(_Param.URLConsulta + "?&id=AABBCCDDEEFFGGHHIIOOPPQQRRSSTTUU&re=" + trxVenta.Rfc + "&rr=" + trxVenta.IdImpuestoCliente.Trim() + "&tt=" + trxVenta.Total.ToString() + "&fe=QWERTYU8"
                                //                        , trxVenta.RutaXml.Trim() + "cbb\\cbbtest.jpg");
                            }
                            else //si el documento está anulado en gp, agregar al log como emitido
                            {
                                maquina.ValidaTransicion("FACTURA", "ANULA VENTA", trxVenta.EstadoActual, "emitido");
                                msj = "Anulado en GP y marcado como emitido.";
                                DocVenta.RegistraLogDeArchivoXML(trxVenta.Soptype, trxVenta.Sopnumbe, "Anulado en GP", "0", _Conex.Usuario, "",
                                                                 "emitido", maquina.eBinarioNuevo, msj.Trim());
                            }
                        }
                    }
                    catch (Exception lo)
                    {
                        string imsj = lo.InnerException == null ? "" : lo.InnerException.ToString();
                        msj = lo.Message + " " + imsj + Environment.NewLine + comprobante.InnerXml; //lo.StackTrace;
                        errores++;
                    }
                    finally
                    {
                        ReportProgress(i * 100 / trxVenta.RowCount, "Doc:" + trxVenta.Sopnumbe + " " + msj.Trim() + Environment.NewLine);
                        i++;
                    }
                } while (trxVenta.MoveNext() && errores < 10);
            }
            catch (Exception xw)
            {
                string imsj = xw.InnerException == null ? "" : xw.InnerException.ToString();
                this.ultimoMensaje = xw.Message + " " + imsj + "\r\n" + xw.StackTrace;
            }
            finally
            {
                ReportProgress(100, ultimoMensaje);
            }
            e.Result = "Proceso finalizado! \r\n ";
            ReportProgress(100, "");
        }
コード例 #12
0
 public About(PAC pac)
 {
     InitializeComponent();
     this.pac = pac;
     PopulateAssemblies();
 }
コード例 #13
0
ファイル: Program.cs プロジェクト: DiWolf/Cfdi-Multifacturas
        public static void CrearFactura()
        {
            //Aquí configuramos el rfc con el cliente, como vamos a hacer pruebas utilizaremos el rfc de pruebas
            // Para cambiar a produción simplemente haga cambie de NO a SI. cuando esta configurado en NO estamos en prueba
            pac = new PAC("DEMO700101XXX", "DEMO700101XXX", "NO");
            //Configuración de certificados.
            conf = new Conf(@"C:\multifacturas_sdk\pruebas\CSD01_AAA010101AAA.cer",
                            @"C:\multifacturas_sdk\pruebas\CSD01_AAA010101AAA.key",
                            "12345678a");
            //Configuramos el sdk para el timbrado
            sdkconf = new SDKConfig(pac, conf, @"C:\multifacturas_sdk\");
            sdk     = new SDK(sdkconf);

            //Datos del emisor.
            emisor = new Emisor();

            //Domicilio
            emisor.Nombre = "Soluciones Integrales en Tecnologías de la Información del Maya S.A de C.V";
            emisor.RFC    = "AAA010101AAA";

            //Creamos el domicilio fiscal del emisor

            DomicilioFiscal domiciliofiscal = new DomicilioFiscal();

            domiciliofiscal.Calle        = " 41";
            domiciliofiscal.NoExterior   = "318";
            domiciliofiscal.Colonia      = "Montealban";
            domiciliofiscal.CodigoPostal = "97114";
            domiciliofiscal.Localidad    = "Mérida";
            domiciliofiscal.Municipio    = "Mérida";
            domiciliofiscal.Pais         = "México";
            domiciliofiscal.Estado       = "Yucatán";



            //En caso de que la expedisión sea en otra sucursal.
            ExpedidoEn expedidoen = new ExpedidoEn();

            expedidoen.Calle        = "Andador Potasio";
            expedidoen.NoExterior   = "279";
            expedidoen.NoInterior   = "3A";
            expedidoen.Colonia      = "11 de Julio";
            expedidoen.CodigoPostal = "60954";
            expedidoen.Localidad    = "Lázaro Cárdenas";
            expedidoen.Municipio    = "Lázaro Cárdenas";
            expedidoen.Pais         = "México";
            expedidoen.Estado       = "Michoacán";

            emisor.Domicilio  = domiciliofiscal;
            emisor.ExpedidoEn = expedidoen;

            ///Creamos el receptor
            receptor        = new Receptor();
            receptor.Nombre = "Francisco Javier Guerrero";
            receptor.RFC    = "XAXX010101000"; //aquí publico gneral.

            Domicilio domicilioreceptor = new Domicilio();

            domicilioreceptor.Calle     = "Domicilio Conocido";
            domicilioreceptor.Localidad = "Lazaro Cárdenas";


            receptor.Domicilio = domicilioreceptor;



            //No es necesario llenar todos los campos.

            //Creamos la venta
            List <Concepto> conceptos = new List <Concepto>();

            conceptos.Add(new Concepto("1", "Pieza", "COD1", "Producto Prueba", "120", "120"));
            Impuestos impuestos = new Impuestos();

            impuestos.AgregaTraslado(new Translado("IVA", "19.2", "16"));

            //Creamos un nuevo objeto de tipo factura


            factura = new CFDI();
            //Datos básicos de la factura
            //factura.Emisor = emisor;
            //factura.Receptor = receptor;
            factura.Emisor    = emisor;
            factura.Receptor  = receptor;
            factura.Conceptos = conceptos;
            factura.Impuestos = impuestos;
            //Configuramos la serie y el folio
            factura.Serie             = "AA";
            factura.Folio             = "1";
            factura.FechaDeExpedicion = "2016-12-02 19:00:00";
            //Consultar los cambios a la miscelanea fiscal Agosto 2016.
            factura.MetodoDePago = "01";
            //Los 4 digitos si pagó con tarjeta o cheque...
            factura.NumCtaPAgo = "";
            //Esto se configura según las reglas del negocio;
            factura.FormaDePago = "Pago en una sola exhibición";
            //Peso mexicano... cambiar al tipo de cambio en caso de cobrar en USD o en otra moneda.
            factura.TipoDeCambio = "1.0";
            //Consultar el Anexo 20.
            factura.TipoDeComprobante = "ingreso"; //ingreso, egreso, traslado [Escribir en minúsculas]
            factura.LugarDeExpedicion = "Lázaro Cárdenas, Michoacan";
            factura.RegimenFiscal     = "De las personas fisicas con actividad empresarial";
            factura.SubTotal          = "120";
            factura.Descuento         = "0";
            factura.Total             = "139.2"; //El total con el iva NETO
            var x = AppDomain.CurrentDomain.BaseDirectory;

            sdk.CreaINI(factura, AppDomain.CurrentDomain.BaseDirectory + "Factura01"); //Esta cadena se cambia por la de tu archivo a generar.

            //Ahora creamos el tmbrado con el archivo INI ya generado (generamos el XML)
            //factura, directorio y el archivo .ini generado
            sdk.Timbrar(factura, AppDomain.CurrentDomain.BaseDirectory, "Factura01");
        }
コード例 #14
0
        public void ProcessExportedFiles(string defaultDataFolder, IGraphicsInfo gInfo)
        {
            if (!(gInfo is PkmdlConstants pkmdlInfo))
            {
                return;
            }

            string texLink = Path.Combine(defaultDataFolder, pkmdlInfo.TEXLink);
            string atxLink = Path.Combine(defaultDataFolder, pkmdlInfo.ATXLink);
            string dtxLink = Path.Combine(defaultDataFolder, pkmdlInfo.DTXLink);
            string pacLink = Path.Combine(defaultDataFolder, pkmdlInfo.PACLink);

            string texUnpacked = Path.Combine(defaultDataFolder, pkmdlInfo.TEXLinkFolder);
            string atxUnpacked = Path.Combine(defaultDataFolder, pkmdlInfo.ATXLinkFolder);
            string dtxUnpacked = Path.Combine(defaultDataFolder, pkmdlInfo.DTXLinkFolder);
            string pacUnpacked = Path.Combine(defaultDataFolder, pkmdlInfo.PACLinkFolder);

            string outFolderPath = Path.Combine(defaultDataFolder, pkmdlInfo.PngFolder);

            Directory.CreateDirectory(outFolderPath);

            LINK.Unpack(texLink, texUnpacked, false, 4);
            LINK.Unpack(atxLink, atxUnpacked, false, 4);
            LINK.Unpack(dtxLink, dtxUnpacked, false, 4);
            LINK.Unpack(pacLink, pacUnpacked, false, 4);

            int fileCount = Directory.GetFiles(texUnpacked).Length;

            Parallel.For(0, fileCount, i =>
            {
                string fileName    = i.ToString().PadLeft(4, '0');
                string outFilePath = Path.Combine(outFolderPath, fileName + ".png");

                BTX0 btx0 = new BTX0(Path.Combine(texUnpacked, fileName));

                Rgba32[] palette = RawPalette.To32bitColors(btx0.Texture.Palette1);
                palette[0]       = Color.Transparent;

                var texImg = ImageUtil.ToImage(
                    new ImageInfo(btx0.Texture.PixelMap, palette, _pokemonSpriteWidth, btx0.Texture.PixelMap.Length / _pokemonSpriteWidth),
                    PointUtil.GetPoint
                    );

                byte[] atxPixelmap = RawChar.Decompress(File.ReadAllBytes(Path.Combine(atxUnpacked, fileName)));
                var atxImg         = ImageUtil.ToImage(
                    new ImageInfo(atxPixelmap, palette, _pokemonSpriteWidth, atxPixelmap.Length / _pokemonSpriteWidth),
                    PointUtil.GetPoint
                    );

                byte[] dtxPixelmap = RawChar.Decompress(File.ReadAllBytes(Path.Combine(dtxUnpacked, fileName)));
                var dtxImg         = ImageUtil.ToImage(
                    new ImageInfo(dtxPixelmap, palette, _pokemonSpriteWidth, dtxPixelmap.Length / _pokemonSpriteWidth),
                    PointUtil.GetPoint
                    );


                string pacFile           = Path.Combine(pacUnpacked, fileName);
                string pacUnpackedFolder = Path.Combine(pacUnpacked, fileName + "-Unpacked");
                PAC.Unpack(pacFile, pacUnpackedFolder, false, 4);
                byte[] pacPixelmap = RawChar.Decompress(File.ReadAllBytes(Path.Combine(pacUnpackedFolder, "0003")));
                var pacImg         = ImageUtil.ToImage(
                    new ImageInfo(pacPixelmap, palette, _pokemonSpriteWidth, pacPixelmap.Length / _pokemonSpriteWidth),
                    PointUtil.GetPoint
                    );

                var totalWidth    = texImg.Width + atxImg.Width + dtxImg.Width + pacImg.Width;
                var maxHeight     = 1024;
                var combinedImage = new Image <Rgba32>(totalWidth, maxHeight);
                combinedImage.Mutate(g =>
                {
                    g.DrawImage(
                        image: texImg,
                        location: new Point(0, 0),
                        opacity: 1
                        );
                    g.DrawImage(
                        image: atxImg,
                        location: new Point(texImg.Width, 0),
                        opacity: 1
                        );
                    g.DrawImage(
                        image: dtxImg,
                        location: new Point(texImg.Width + atxImg.Width, 0),
                        opacity: 1
                        );
                    g.DrawImage(
                        image: pacImg,
                        location: new Point(texImg.Width + atxImg.Width + dtxImg.Width, 0),
                        opacity: 1
                        );
                });

                texImg.Dispose();
                atxImg.Dispose();
                dtxImg.Dispose();
                pacImg.Dispose();

                combinedImage.SaveAsPng(outFilePath);
                combinedImage.Dispose();
            });
        }
コード例 #15
0
 public SolutionDialog(PAC pac)
 {
     InitializeComponent();
     this.pac = pac;
 }
コード例 #16
0
 public void LoginC()
 {
     UNC.SendKeys("admin");
     PAC.SendKeys("admin");
     LOGC.Click();
 }
コード例 #17
0
        public void GetFilesToPatch(ConcurrentBag <FileToPatch> filesToPatch, IGraphicsInfo gInfo)
        {
            if (!(gInfo is PkmdlConstants pkmdlInfo))
            {
                return;
            }

            var spriteFiles = _overrideSpriteProvider.GetAllSpriteFiles(pkmdlInfo.Type);

            if (!spriteFiles.Any(i => i.IsOverride))
            {
                return;
            }

            // temporary link files
            string texLink = Path.GetTempFileName();
            string atxLink = Path.GetTempFileName();
            string dtxLink = Path.GetTempFileName();
            string pacLink = Path.GetTempFileName();

            // link files unpacked previously
            string texUnpacked = Path.Combine(_graphicsProviderFolder, pkmdlInfo.TEXLinkFolder);
            string atxUnpacked = Path.Combine(_graphicsProviderFolder, pkmdlInfo.ATXLinkFolder);
            string dtxUnpacked = Path.Combine(_graphicsProviderFolder, pkmdlInfo.DTXLinkFolder);
            string pacUnpacked = Path.Combine(_graphicsProviderFolder, pkmdlInfo.PACLinkFolder);

            var spriteFileDict = spriteFiles.ToDictionary(i => i.Id);

            var texLinkFiles = new string[200];
            var atxLinkFiles = new string[200];
            var dtxLinkFiles = new string[200];
            var pacLinkFiles = new string[200];

            Parallel.For(0, 200, i =>
            {
                string fileName = i.ToString().PadLeft(4, '0');
                var spriteFile  = spriteFileDict[i];
                if (spriteFile.IsOverride)
                {
                    using (var combinedImage = Image.Load <Rgba32>(spriteFile.File))
                    {
                        // populate palette ------------------------------------------------------------------------------------------------------

                        var palette = new List <Rgba32> {
                            Color.Transparent
                        };

                        // TEX ------------------------------------------------------------------------------------------------------

                        string texSource = Path.Combine(texUnpacked, fileName);
                        string texTemp   = Path.GetTempFileName();
                        File.Copy(texSource, texTemp, true);
                        BTX0 btx0  = new BTX0(texSource);
                        int height = btx0.Texture.PixelMap.Length / _pokemonSpriteWidth;
                        using (var texImg = combinedImage.Clone(g =>
                        {
                            g.Crop(new Rectangle(0, 0, _pokemonSpriteWidth, height));
                        }))
                        {
                            btx0.Texture.PixelMap = ImageUtil.FromImage(texImg, palette, PointUtil.GetIndex);
                        }

                        // ATX ------------------------------------------------------------------------------------------------------

                        var atxDecompressedLen = new FileInfo(Path.Combine(atxUnpacked, fileName)).Length * 2;
                        using (var atxImg = combinedImage.Clone(g =>
                        {
                            g.Crop(new Rectangle(_pokemonSpriteWidth, 0, _pokemonSpriteWidth, (int)(atxDecompressedLen / _pokemonSpriteWidth)));
                        }))
                        {
                            string atxTemp = Path.GetTempFileName();
                            File.WriteAllBytes(atxTemp, RawChar.Compress(ImageUtil.FromImage(atxImg, palette, PointUtil.GetIndex)));
                            atxLinkFiles[i] = atxTemp;
                        }


                        // DTX ------------------------------------------------------------------------------------------------------

                        var dtxDecompressedLen = new FileInfo(Path.Combine(atxUnpacked, fileName)).Length * 2;
                        using (var dtxImg = combinedImage.Clone(g =>
                        {
                            g.Crop(new Rectangle(_pokemonSpriteWidth * 2, 0, _pokemonSpriteWidth, (int)(dtxDecompressedLen / _pokemonSpriteWidth)));
                        }))
                        {
                            string dtxTemp = Path.GetTempFileName();
                            File.WriteAllBytes(dtxTemp, RawChar.Compress(ImageUtil.FromImage(dtxImg, palette, PointUtil.GetIndex)));
                            dtxLinkFiles[i] = dtxTemp;
                        }


                        // PAC ------------------------------------------------------------------------------------------------------

                        string pacUnpackedFolder = Path.Combine(pacUnpacked, fileName + "-Unpacked");
                        var pacDecompressedLen   = new FileInfo(Path.Combine(pacUnpackedFolder, "0003")).Length * 2;
                        using (var pacImg = combinedImage.Clone(g =>
                        {
                            g.Crop(new Rectangle(_pokemonSpriteWidth * 3, 0, _pokemonSpriteWidth, (int)(pacDecompressedLen / _pokemonSpriteWidth)));
                        }))
                        {
                            string pacCharTemp = Path.GetTempFileName();
                            File.WriteAllBytes(pacCharTemp, RawChar.Compress(ImageUtil.FromImage(pacImg, palette, PointUtil.GetIndex)));
                            string pacTemp    = Path.GetTempFileName();
                            string[] pacFiles = new string[]
                            {
                                Path.Combine(pacUnpackedFolder, "0000"),
                                Path.Combine(pacUnpackedFolder, "0001"),
                                Path.Combine(pacUnpackedFolder, "0002"),
                                pacCharTemp
                            };
                            PAC.Pack(pacFiles, new[] { 0, 2, 5, 6 }, pacTemp, 1);
                            File.Delete(pacCharTemp);
                            pacLinkFiles[i] = pacTemp;
                        }


                        // TEX Palette -------------------------------------------------------------------------------------------
                        if (palette.Count > 16)
                        {
                            throw new System.Exception($"More than 16 colors in image when building tex file in {nameof(PkmdlPatchBuilder)}. This should have been filtered out by palette simplifier");
                        }

                        var resizedPalette = new Rgba32[16];
                        for (int paletteIndex = 0; paletteIndex < palette.Count; paletteIndex++)
                        {
                            resizedPalette[paletteIndex] = palette[paletteIndex];
                        }
                        resizedPalette[0] = Color.FromRgb(120, 120, 120);

                        var convertedPalette  = RawPalette.From32bitColors(resizedPalette);
                        btx0.Texture.Palette1 = convertedPalette;
                        btx0.Texture.Palette2 = convertedPalette;
                        btx0.WriteTo(texTemp);
                        texLinkFiles[i] = texTemp;
                    }
                }
                else
                {
                    texLinkFiles[i] = Path.Combine(texUnpacked, fileName);
                    atxLinkFiles[i] = Path.Combine(atxUnpacked, fileName);
                    dtxLinkFiles[i] = Path.Combine(dtxUnpacked, fileName);
                    pacLinkFiles[i] = Path.Combine(pacUnpacked, fileName);
                }
            });

            LINK.Pack(texLinkFiles, texLink);
            LINK.Pack(atxLinkFiles, atxLink);
            LINK.Pack(dtxLinkFiles, dtxLink);
            LINK.Pack(pacLinkFiles, pacLink);

            filesToPatch.Add(new FileToPatch(pkmdlInfo.TEXLink, texLink, FilePatchOptions.DeleteSourceWhenDone | FilePatchOptions.VariableLength));
            filesToPatch.Add(new FileToPatch(pkmdlInfo.ATXLink, atxLink, FilePatchOptions.DeleteSourceWhenDone | FilePatchOptions.VariableLength));
            filesToPatch.Add(new FileToPatch(pkmdlInfo.DTXLink, dtxLink, FilePatchOptions.DeleteSourceWhenDone | FilePatchOptions.VariableLength));
            filesToPatch.Add(new FileToPatch(pkmdlInfo.PACLink, pacLink, FilePatchOptions.DeleteSourceWhenDone | FilePatchOptions.VariableLength));
        }
コード例 #18
0
 public AzureLoginDialog(PAC pac)
 {
     InitializeComponent();
     this.pac = pac;
 }
コード例 #19
0
        /// <summary>
        /// Ejecuta la generación de archivos xml y pdf en un thread independiente
        /// </summary>
        /// <param name="e">trxVentas</param>
        protected override void OnDoWork(DoWorkEventArgs e)
        {
            ReportProgress(0, "Iniciando proceso...\r\n");
            object[] args = e.Argument as object[];
            vwCfdTransaccionesDeVenta trxVenta = (vwCfdTransaccionesDeVenta)args[0];

            trxVenta.Rewind();                                                          //move to first record

            int                   errores = 0; int i = 1;
            string                antiguoIdCertificado = "";
            XmlDocument           sello                = new XmlDocument();
            TecnicaDeEncriptacion criptografo          = null;
            XmlDocument           comprobante          = new XmlDocument();
            XmlDocumentFragment   addenda;
            cfdReglasFacturaXml   DocVenta         = new cfdReglasFacturaXml(_Conex, _Param); //log de facturas xml emitidas y anuladas
            ReglasME              maquina          = new ReglasME(_Param);
            ValidadorXML          validadorxml     = new ValidadorXML(_Param);
            TransformerXML        loader           = new TransformerXML();
            XslCompiledTransform  xslCompilado     = loader.Load(_Param.URLArchivoXSLT);
            PAC                   representanteSat = new PAC(trxVenta.Ruta_clavePac, trxVenta.Contrasenia_clavePac, _Param);

            ultimoMensaje = validadorxml.mensajeError;
            if (validadorxml.numErrores != 0 || DocVenta.numMensajeError != 0 || loader.numErrores != 0 || representanteSat.numErr != 0)
            {
                e.Result = validadorxml.mensajeError + " " + DocVenta.ultimoMensaje + " " + loader.mensajeError + " " + representanteSat.msjError + "\r\n";
                ReportProgress(100, validadorxml.mensajeError + " " + DocVenta.ultimoMensaje + " " + loader.mensajeError + " " + representanteSat.msjError + "\r\n");
                return;
            }
            do
            {
                if (CancellationPending)
                {
                    e.Cancel = true; return;
                }

                if (trxVenta.Estado.Equals("no emitido") &&
                    maquina.ValidaTransicion(_Param.tipoDoc, "EMITE XML Y PDF", trxVenta.EstadoActual, "emitido/impreso"))
                {
                    if (trxVenta.Voidstts == 0)  //documento no anulado
                    {
                        //Cargar los datos del certificado por cada nuevo Id de certificado asociado al documento de venta
                        if (!trxVenta.ID_Certificado.Equals(antiguoIdCertificado))
                        {
                            criptografo          = new TecnicaDeEncriptacion(trxVenta.Ruta_clave, trxVenta.Contrasenia_clave, trxVenta.Ruta_certificado.Trim(), trxVenta.Ruta_certificado.Replace(".cer", ".pem").Trim());
                            antiguoIdCertificado = trxVenta.ID_Certificado;
                        }

                        comprobante.LoadXml(trxVenta.ComprobanteXml);
                        if (criptografo.numErrores == 0 &&
                            loader.getCadenaOriginal(comprobante, xslCompilado))    //Obtener cadena original del CFD
                        {                                                           //Crear el archivo xml y sellarlo
                            comprobante.DocumentElement.SetAttribute("sello", criptografo.obtieneSello(loader.cadenaOriginal));
                            comprobante.DocumentElement.SetAttribute("noCertificado", criptografo.noCertificado);
                            comprobante.DocumentElement.SetAttribute("certificado", criptografo.certificadoFormatoPem);

                            if (!_Conex.IntegratedSecurity)                         //para testeo:
                            {
                                comprobante.Save(new XmlTextWriter(trxVenta.Sopnumbe + "tst.xml", Encoding.UTF8));
                            }
                        }

                        if (loader.numErrores == 0 &&
                            criptografo.numErrores == 0 &&
                            validadorxml.ValidarXSD(comprobante))                   //Validar el esquema del archivo xml
                        {
                            representanteSat.comprobanteFiscal = comprobante;
                            representanteSat.timbraCFD();                           //agregar sello al comprobante
                        }
                        else
                        {
                            errores++;
                        }

                        if (loader.numErrores == 0 &&
                            validadorxml.numErrores == 0 &&
                            criptografo.numErrores == 0 &&
                            representanteSat.numErr == 0)
                        {
                            //Agregar el nodo addenda si existe
                            if (trxVenta.Addenda != null && trxVenta.Addenda.Length > 0)
                            {
                                addenda          = comprobante.CreateDocumentFragment();
                                addenda.InnerXml = trxVenta.Addenda;
                                comprobante.DocumentElement.AppendChild(addenda);
                            }

                            //Guarda el archivo xml, genera el cbb y el pdf.
                            //Luego anota en la bitácora la factura emitida o el error al generar cbb o pdf.
                            if (!DocVenta.AlmacenaEnRepositorio(trxVenta, comprobante, maquina, representanteSat.Uuid))
                            {
                                errores++;
                            }
                        }
                        else
                        {
                            errores++;
                        }
                        this.ultimoMensaje = criptografo.ultimoMensaje + " " + validadorxml.mensajeError + " " + DocVenta.ultimoMensaje + " " +
                                             loader.mensajeError + " " + representanteSat.msjError;
                    }
                    else //si el documento está anulado en gp, agregar al log como emitido
                    {
                        maquina.ValidaTransicion("FACTURA", "ANULA VENTA", trxVenta.EstadoActual, "emitido");
                        this.ultimoMensaje = "Anulado en GP y marcado como emitido.";
                        DocVenta.RegistraLogDeArchivoXML(trxVenta.Soptype, trxVenta.Sopnumbe, "Anulado en GP", "0", _Conex.Usuario, "",
                                                         "emitido", maquina.eBinarioNuevo, this.ultimoMensaje.Trim());
                    }
                }
                ReportProgress(i * 100 / trxVenta.RowCount, "Doc:" + trxVenta.Sopnumbe + " " + this.ultimoMensaje.Trim() + "\r\n");
                i++;
            } while (trxVenta.MoveNext() && errores < 10);
            e.Result = "Generación de archivos finalizado! \r\n";
            ReportProgress(100, "");
        }