public ActionResult Error(ErrCode errcode, object data = null) { return(Json(new { code = (int)errcode, msg = errcode.ToString(), data = data }, JsonRequestBehavior.AllowGet)); }
private static string[] InitFmlaErr() { Array ErrCodes = TCompactFramework.EnumGetValues(typeof(TFlxFormulaErrorValue)); string[] Result = new string[64]; //It should be the real number but... foreach (TFlxFormulaErrorValue ErrCode in ErrCodes) { Result[(int)ErrCode] = rm.GetString("fm" + ErrCode.ToString()); } return(Result); }
public string GetError() { if (Error != null) { return(Error.ToString()); } switch (ErrCode) { case -1: return("Canceled"); default: return(ErrCode.ToString()); } }
public Error(ErrCode code, string userId = null, string detail = null) { char type = code.ToString().First(); switch (type) { case 'S': Message = "[" + code.ToString() + "系統錯誤] 請通知管理員<*****@*****.**>"; break; case 'N': Message = "[" + code.ToString() + "系統正常] " + detail + "\n來自: " + userId; break; case 'D': Message = "[" + code.ToString() + "資料庫異常] " + detail + "\n來自: " + userId; break; default: break; } }
public static IntPtr AcquireContext(string conName, string provName, ProvType provType, ContextFlag conFlag) { IntPtr hProv; bool retVal = Crypto.CryptAcquireContext(out hProv, conName, provName, (uint)provType, (uint)conFlag); ErrCode ec = Error.HandleRetVal(retVal, ErrCode.NTE_BAD_KEYSET); if (ec == ErrCode.NTE_BAD_KEYSET) //try creating a new key container { retVal = Crypto.CryptAcquireContext(out hProv, conName, provName, (uint)provType, (uint)ContextFlag.NEWKEYSET); ec = Error.HandleRetVal(retVal); } if (hProv == IntPtr.Zero) { throw new Exception("bNb.Sec: " + ec.ToString()); } return(hProv); }
public static IntPtr GetUserKey(IntPtr prov, KeySpec keySpec) { IntPtr key; bool retVal = NativeMethods.CryptGetUserKey(prov, (uint)keySpec, out key); ErrCode ec = Error.HandleRetVal(retVal, ErrCode.NTE_NO_KEY); if (ec == ErrCode.NTE_NO_KEY) //2148073485 { retVal = NativeMethods.CryptGenKey(prov, (uint)keySpec, (uint)GenKeyParam.EXPORTABLE, out key); ec = Error.HandleRetVal(retVal); //is this necessary? why not just use key from GenKey? //retVal = Crypto.CryptGetUserKey(prov, (uint) keySpec, out key); } if (key == IntPtr.Zero) { throw new Exception(ec.ToString()); } return(key); }
public static ErrCode HandleRetVal(bool retVal, ErrCode [] expected) { ErrCode ec = ErrCode.SUCCESS; if (retVal == false) { uint lastErr = (uint)Marshal.GetLastWin32Error(); ec = (ErrCode)lastErr; bool isExpected = false; foreach (ErrCode expect in expected) { if (ec == expect) { isExpected = true; } } if (isExpected == false) { throw new Exception("bNb.Sec: " + ec.ToString()); } } return(ec); }
/// <summary> /// INVALID_PARAMETER. call Context.AcquireContext with minimal values instead /// </summary> public static string GetDefaultProvider(ProvType provType, ProvDefaultFlag provDefFlag) { uint reserved = 0; uint flags = (uint)provDefFlag; uint dataLen = 0; StringBuilder provName = new StringBuilder(); bool retVal = Crypto.CryptGetDefaultProvider((uint)provType, ref reserved, flags, provName, ref dataLen); ErrCode ec = Error.HandleRetVal(retVal, ErrCode.MORE_DATA); if (ec == ErrCode.MORE_DATA) { provName = new StringBuilder((int)dataLen); retVal = Crypto.CryptGetDefaultProvider((uint)provType, ref reserved, flags, provName, ref dataLen); ec = Error.HandleRetVal(retVal); } string name = provName.ToString(); if (name == null || name == String.Empty) { throw new Exception(ec.ToString()); } return(name); }
public override string ToString() { return(string.Format("<Response><ErrCode>{0}</ErrCode><ErrDesc>{1}</ErrDesc></Response>", ErrCode.ToString(), ErrDesc)); }
static void Main(string[] args) { // Inicializa Configuración Inicial MainSettings MS = new MainSettings(); if (!MS.ok) { return; } GeneraLog = MS.GeneraLog; GeneraLog.EnvioSunat01("= = = = INICIO DE ENVÍO A SUNAT = = = ="); // Verificamos si es que el nombre del documento está en args[] if (args.Length < 1) { //args = new string[2]; GeneraLog.EnvioSunat01(": : MODO MANUAL"); GeneraLog.EnvioSunat01("Ingrese el nombre del documento a procesar: "); args = Console.ReadLine().Split(' '); GeneraLog.EnvioSunat01("Nombre del documento ingresado manualmente: " + args[0]); } GeneraLog.EnvioSunat01("Nombre del Documento a envíar a SUNAT: " + args[0]); //DocumentName = "20544014189-RR-20171024-1"; DocumentName = args[0]; if (args.Length > 1) { if (args[1].ToUpper() == "Q") { isQuery = true; } } if (!Fill()) { return; } MS.DocumentName = DocumentName; MS.DocumentType = DocumentType; MS.RucNumber = RucNumber; MS.getFileNames(); if (MS.DocumentType.StartsWith("R")) { isSummary = true; if (MS.DocumentType == "RC") { SummaryType = "B"; } if (MS.DocumentType == "RA") { SummaryType = "A"; } if (MS.DocumentType == "RR") { SummaryType = "A"; } } string typedoc = string.Empty; if (MS.DocumentName.ToLower().Contains("r")) { if (MS.DocumentName.ToLower().Contains("rc-")) { typedoc = "B"; } if (MS.DocumentName.ToLower().Contains("ra-")) { typedoc = "A"; } if (MS.DocumentName.ToLower().Contains("rr-")) { typedoc = "A"; } } #region Validacion de RUC if (!MS.Load(RucNumber)) { if (MS.Envi == "") { GeneraLog.LecturaArchivo($"El Tipo de Documento {DocumentType} no está habilitado para el envío a Sunat"); GeneraLog.EnvioSunat01("= = = = FIN DE ENVÍO A SUNAT = = = ="); return; } else { GeneraLog.LecturaArchivo($"La empresa con el RUC:{RucNumber} no está habilitada"); GeneraLog.EnvioSunat01("= = = = FIN DE ENVÍO A SUNAT = = = ="); return; } } #endregion DatabaseConnection DB = new DatabaseConnection(MS); // Verificamos en la Base de Datos el numero de Documento ingresado int a = DB.SP_ObtenerDocumentoXML(DocumentName); MS = DB.MS; #region Error de Consulta if (a == -1) { GeneraLog.EnvioSunat01("Error al momento de consultar el documento"); } #endregion #region Documento no Existe else if (a == 0) { GeneraLog.EnvioSunat01($"El Documento {DocumentName} no existe en base de datos"); } #endregion #region Documento ya ha sido enviado else if (a == 1) { GeneraLog.EnvioSunat01($"El Documento {DocumentName} ya ha sido enviado a SUNAT"); } #endregion #region Documento puede ser enviado else if (a == 2) { GeneraLog.EnvioSunat01($"El Documento {DocumentName} está listo para ser enviado a SUNAT"); if (zipFile(DB, MS)) { GeneraLog.EnvioSunat01($"Documento comprimido en {MS.ZIPEFileLocation}"); SunatConnection SN = null; if ("20|40|RR".Contains(DocumentType)) { SN = new SunatConnection("Retenciones", MS); } else if ("01|07|08|RC|RA".Contains(DocumentType) && !DocumentSerie.StartsWith("B")) { SN = new SunatConnection("Documentos", MS); } else if ("03|".Contains(DocumentType) || DocumentSerie.StartsWith("B")) { if (MS.Envi == "HML") { SN = new SunatConnection("Documentos", MS); } } else { GeneraLog.EnvioSunat01($"Documento {DocumentType} no configurado en ambiente {MS.Envi}"); } //Thread.Sleep(5000); if (SN != null) { #region Consulta de Ticket if (isQuery) { Tuple <string, bool> XQ = null; XQ = SN.ObtenerEstadoUnit(MS.im); if (XQ.Item2) { #region my change if (XQ.Item1 != null && XQ.Item1.Length > 200)//valida que sea un xml { //aqui descomprime el cdr if (UnZipCDR(MS, XQ.Item1)) { //obtiene el codigo de respuesta en el cdr #region insert cdr and update document header var rs = ADE.Extras.Common.Method.Methods.Instance.GetActionCodeResponse_CDR(MS); switch (rs) { case "SOK": //ok case "OBS": //obsv { DB.SP_InsertaCDRResumen(CDR, MS.id, SummaryType); GeneraLog.EnvioSunat01("CDR guardado correctamente"); GetNotes(DB, MS); GeneraLog.EnvioSunat01("Documento ha sido aceptado correctamente por SUNAT"); //DB.addRSunatResponse(MS.id, "7", CDRmsg, MS.im, SummaryType); DB.addRSunatResponse(MS.id, "SOK", CDRmsg, MS.im, SummaryType); #region RA, RR NOTIFICACION string path = Directory.GetCurrentDirectory(); string pathlog = MS.LOGS + "7_NotificacionBaja.log"; //if (typedoc.Contains("A")) //{ var list = DB.Get_ListDocument_AN(MS.id); if (list.Count > 0) { foreach (var d in list) { if (d.TO.Length > 5 && d.TypeRC == "ANS") { var res = ADE.Extras.Common.Method.Methods.Instance.SendNotify(path, d); ADE.Extras.Common.Method.Methods.Instance.WriteLog(pathlog, "------------------------- INICIO -------------------------"); ADE.Extras.Common.Method.Methods.Instance.WriteLog(pathlog, "Enviando notificación de baja"); ADE.Extras.Common.Method.Methods.Instance.WriteLog(pathlog, "Documento : " + d.Num_CE); ADE.Extras.Common.Method.Methods.Instance.WriteLog(pathlog, "Email Destino: " + d.TO); ADE.Extras.Common.Method.Methods.Instance.WriteLog(pathlog, "Resultado : " + res); ADE.Extras.Common.Method.Methods.Instance.WriteLog(pathlog, "-------------------------- FIN ---------------------------"); ADE.Extras.Common.Method.Methods.Instance.ConsoleLog("------------------------- INICIO -------------------------"); ADE.Extras.Common.Method.Methods.Instance.ConsoleLog("Enviando notificación de baja"); ADE.Extras.Common.Method.Methods.Instance.ConsoleLog("Documento : " + d.Num_CE); ADE.Extras.Common.Method.Methods.Instance.ConsoleLog("Email Destino: " + d.TO); ADE.Extras.Common.Method.Methods.Instance.ConsoleLog("Resultado : " + res); ADE.Extras.Common.Method.Methods.Instance.ConsoleLog("-------------------------- FIN ---------------------------"); } } } //typedoc = string.Empty; //} #endregion break; } case "RCHZ": //rechazado { string item1 = string.Empty; if (XQ.Item1 != null && XQ.Item1.Length > 200) { item1 = "CDR"; } else { item1 = XQ.Item1; } DB.SP_InsertaCDRResumen(CDR, MS.id, SummaryType); GeneraLog.EnvioSunat01("CDR guardado correctamente"); GetNotes(DB, MS); GeneraLog.EnvioSunat01("Documento fue enviado pero tiene errores: " + item1); //DB.addRSunatResponse(MS.id, "6", CDRmsg, MS.im, SummaryType); DB.addRSunatResponse(MS.id, "SRE", CDRmsg, MS.im, SummaryType); break; } case "EXC": //exception { string item1 = string.Empty; if (XQ.Item1 != null && XQ.Item1.Length > 200) { item1 = "CDR"; } else { item1 = XQ.Item1; } GeneraLog.EnvioSunat01("Se detectaron excepciones al enviar el archivo: " + item1); break; } case "": //cuando no se obtuvo codigo del cdr { string item1 = string.Empty; if (XQ.Item1 != null && XQ.Item1.Length > 200) { item1 = "CDR"; } else { item1 = XQ.Item1; } GeneraLog.EnvioSunat01("El procedimiento no devolvio un cdr: " + item1); break; } } #endregion } else { GeneraLog.EnvioSunat01("Error al descomprimir cdr"); } } else { GeneraLog.EnvioSunat01("El procedimiento no devolvio un cdr: " + XQ.Item1); } #endregion //aqui va el unzip de consulta ticket //aqui ternima el unzip de consulta ticket } else { #region code 99 if (XQ.Item1 != null && XQ.Item1.Length > 200)//valida que sea un xml { if (UnZipCDR(MS, XQ.Item1)) { DB.SP_InsertaCDRResumen(CDR, MS.id, SummaryType); GeneraLog.EnvioSunat01("CDR guardado correctamente"); GetNotes(DB, MS); string item1 = string.Empty; if (XQ.Item1 != null && XQ.Item1.Length > 200) { item1 = "CDR"; } else { item1 = XQ.Item1; } GeneraLog.EnvioSunat01("Documento fue enviado pero tiene errores: " + item1); //DB.addRSunatResponse(MS.id, "6", CDRmsg, MS.im, SummaryType); DB.addRSunatResponse(MS.id, "SRE", CDRmsg, MS.im, SummaryType); } } else { string item1 = string.Empty; if (XQ.Item1 != null && XQ.Item1.Length > 200) { item1 = "CDR"; } else { item1 = XQ.Item1; } GeneraLog.EnvioSunat01("El proceso devolvio: " + item1 + ", " + XQ.Item2); } #endregion //GeneraLog.EnvioSunat01("El procedimiento no devolvio un cdr: " + XQ.Item1); //GeneraLog.EnvioSunat01("Resumen ha sido rechazado"); //descomentar //DB.addRSunatResponse(MS.id, "6", "", MS.im, SummaryType); //descomentar } } #endregion #region Envío a Sunat else { Tuple <string, bool> XA = null; if (isSummary) { XA = SN.EnviarResumen(ZIP, MS.ZIPEFileName); } else { XA = SN.EnviarDocumento(ZIP, MS.ZIPEFileName); } #region Envio Correcto if (XA.Item2) { #region Resumenes-solo se enviara hasta el ticket, if (isSummary) { //aqui quite una parte DB.addRSunatResponse(MS.id, "ESX", "", XA.Item1, SummaryType); //aqui termina } #endregion #region Documentos else { if (UnZipCDR(MS, XA.Item1)) { DB.SP_InsertaCDR(CDR, DocumentName, "3"); GeneraLog.EnvioSunat01("CDR guardado correctamente"); GetNotes(DB, MS); int SNCode; if (int.TryParse(CDRcod, out SNCode)) { if (SNCode == 0) { GeneraLog.EnvioSunat01("Documento ha sido aceptado correctamente por SUNAT"); var res = DB.SP_ActualizaEstado(MS.id, "7", DocumentName); if (res < 0) { DB.SP_ActualizaEstado(MS.id, "7", DocumentName); } GenerateMAILPDF(MS, DB, "7"); } if (SNCode >= 2000 && SNCode <= 3999) { GeneraLog.EnvioSunat01("Documento ha sido rechazado por SUNAT"); DB.SP_ActualizaEstado(MS.id, "6", DocumentName); GenerateMAILPDF(MS, DB, "6"); } if (SNCode >= 4000 || CDRnotes.Count > 0) { GeneraLog.EnvioSunat01("Documento fue aceptado pero tiene observaciones"); DB.SP_ActualizaEstado(MS.id, "5", DocumentName); GenerateMAILPDF(MS, DB, "5"); } } } else { GeneraLog.EnvioSunat01($"Se produjo un error en la descompresión del documento"); } } #endregion } #endregion #region Error/Excepcion de Envio else { int ErrCode; string ErrSunat = (XA.Item1.Length > 3 ? XA.Item1.Substring(XA.Item1.Length - 4, 4) : XA.Item1); #region Error Conocido if (int.TryParse(ErrSunat, out ErrCode)) { if (isSummary) { if (ErrCode >= 2000 && ErrCode <= 3999) { MS.GeneraLog.EnvioSunat01($"El Documento ha sido rechazado por Sunat"); //DB.addRSunatResponse(MS.id, "6", $"{ErrCode.ToString()} - El Documento ha sido rechazado por Sunat", "", SummaryType); DB.addRSunatResponse(MS.id, "SRE", $"{ErrCode.ToString()} - El Documento ha sido rechazado por Sunat", "", SummaryType); } } else { if ("20|40".Contains(DocumentType)) { if (ErrCode == 2282) { MS.GeneraLog.EnvioSunat01($"El Documento ya ha sido enviado a Sunat anteriormente"); MS.GeneraLog.EnvioSunat01($"Actualizando estado en Base de Datos"); DB.SP_ActualizaEstado(MS.id, "7", DocumentName); DB.SP_InsertaMensajeRespuesta(MS.id, "0", $"El Comprobante numero {DocumentSplit[2]}-{DocumentSplit[3]}, ha sido aceptado"); } else { if (ErrCode >= 2000 && ErrCode <= 3999) { MS.GeneraLog.EnvioSunat01($"El Documento ha sido rechazado por Sunat"); DB.SP_ActualizaEstado(MS.id, "6", DocumentName); //Cambio del dia 10-05-2018 DB.SP_InsertaMensajeRespuesta_2(MS.id, XA.Item1); GenerateMAILPDF(MS, DB, "6"); } } } else { DB.SP_ActualizaEstado(MS.id, "4", DocumentName); } } } #endregion #region Error Desconocido else { if (isSummary) { } else { DB.SP_ActualizaEstado(MS.id, "4", DocumentName); } } #endregion } #endregion } #endregion } } else { GeneraLog.EnvioSunat01($"Se produjo un error en la compresión del documento"); GeneraLog.EnvioSunat01("= = = = FIN DE ENVÍO A SUNAT = = = ="); return; } } #endregion GeneraLog.EnvioSunat01("= = = = FIN DE ENVÍO A SUNAT = = = ="); GeneraLog.RegistraLog(DocumentName + ".txt"); }
public BIException(ErrCode code, string msg = "Ok") : base(code.ToString()) { mCode = code; mMsg = msg; }
public JsonResult(object Data, ErrCode Error = ErrCode.CMD_SUCCESS) { this.Data = Data; this.Result = Error == ErrCode.CMD_SUCCESS; this.Error = Error.ToString(); }
public JsonResult(object Data, bool Result = true, ErrCode Error = ErrCode.CMD_SUCCESS) { this.Data = Data; this.Result = Result; this.Error = Error.ToString(); }
private void Mba_Error(ErrCode ec) { Log("PRX_ERR: " + ec.ToString(), LogType.Critical); }