Ejemplo n.º 1
0
        private static StatusXml DefineStatusInfo(Controller controller, StatusXml status, string base64body)
        {
            string path = null;

            switch (status.MessageClass)
            {
            case "ON_SCHFDOPPR":
            case "ON_KORSCHFDOPPR":
                path = "Файл/@ИдФайл";
                if (status.Status != "2")
                {
                    status.Status = "0";
                }
                break;

            case "DP_PDPOL":
                path          = "Файл/Документ/СведПодтв/СведОтпрФайл/@ИмяПостФайла";
                status.Status = "1";
                break;

            case "DP_UVUTOCH":
                path               = "Файл/Документ/СвУведУточ/СведПолФайл/@ИмяПостФайла";
                status.Status      = "4";
                status.Description = GetTextFromXml(base64body, "Файл/Документ/СвУведУточ/ТекстУведУточ");
                break;

            case "DP_IZVPOL":
                path          = "Файл/Документ/СвИзвПолуч/СведПолФайл/@ИмяПостФайла";
                status.Status = "3";
                break;

            case "ON_SCHFDOPPOK":
            case "ON_KORSCHFDOPPOK":
                path          = "Файл/ИнфПок/ИдИнфПрод/@ИдФайлИнфПр";
                status.Status = "3";
                break;
            }
            status.StatusOnFileName = GetTextFromXml(base64body, path);

            /*
             * body of parent doc
             * if current doc not one of ON_SCHFDOPPR, ON_KORSCHFDOPPR we need to find body of parent doc
             */
            string body = base64body;

            if (!status.MessageClass.Contains("SCHFDOPPR"))
            {
                string docGuidToFind = status.StatusOnFileName.Split('_')[5];
                body = controller.getUPDDocumentContent(docGuidToFind).body;
            }

            status.From         = GetTextFromXml(body, "Файл/СвУчДокОбор/@ИдОтпр");
            status.To           = GetTextFromXml(body, "Файл/СвУчДокОбор/@ИдПол");
            status.EXiteICID    = GetTextFromXml(body, "Файл/Документ/СвСчФакт/@НомерСчФ");;
            status.CustomerICID = GetTextFromXml(body, "Файл/Документ/СвСчФакт/@НомерСчФ");

            return(status);
        }
Ejemplo n.º 2
0
        public static void saveStatus(Controller controller, string base64body, Document doc, string errorMessage)
        {
            if (doc.status != null && doc.status.Length != 0)
            {
                StatusXml status = new StatusXml();
                if (errorMessage != null)
                {
                    status.Description = errorMessage;
                    status.Status      = "2";
                }
                string fileName = GetTextFromXml(base64body, "Файл/@ИдФайл");
                status.MessageClass = fileName.Split('_')[0] + "_" + fileName.Split('_')[1];

                /*
                 * set parent file name , status code , from , to and number
                 */
                status = DefineStatusInfo(controller, status, base64body);

                List <string> path = new List <string>();
                path.Add(doc.status);
                saveTicket(path, status.fileName, Utils.StringToBytes(Utils.ToXml(status, "UTF-8"), "UTF-8"));
            }
        }