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(); }
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); } } }
public SarifControl(PAC pac) { this.pac = pac; InitializeComponent(); DoubleBuffered = true; Reset(); }
public ScopeControl(PAC pac) { this.pac = pac; serviceUrl = new PACClientInfo().ServiceUrl; language = null; InitializeComponent(); originalSize = Size; }
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")); } } }
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); }
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); } }
public ValueTask ExecuteAsync(IConsole console) { PAC.Pack(FolderPath, FileTypeNumbers, DestinationFile); return(default);
public ValueTask ExecuteAsync(IConsole console) { PAC.Unpack(FilePath, DestinationFolder); return default; }
/// <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); }
/// <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, ""); }
public About(PAC pac) { InitializeComponent(); this.pac = pac; PopulateAssemblies(); }
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"); }
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(); }); }
public SolutionDialog(PAC pac) { InitializeComponent(); this.pac = pac; }
public void LoginC() { UNC.SendKeys("admin"); PAC.SendKeys("admin"); LOGC.Click(); }
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)); }
public AzureLoginDialog(PAC pac) { InitializeComponent(); this.pac = pac; }
/// <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, ""); }