public static MyCustomModel ConvertToMyCustomModel(this MyCustomModel model, WebServiceModel wsModel) { var newModel = new MyCustomModel { Id = wsModel.Id, SomeValue = wsModel.SomeValue }; return(newModel); }
public ActionResult ReenviarNegocio(int idNegocio) { WebServiceModel wsOp = new WebServiceModel(); wsOp.updateFacturaEstadoReenvio(idNegocio); decimal usuario = wsOp.obtenerNoUsuario(idNegocio); string rutaXML = CrearXML.CrearXMLFile(idNegocio); if (System.IO.File.Exists(rutaXML)) { Thread t = new Thread(() => new WebServiceController().llamadoWebService(rutaXML, usuario.ToString(), idNegocio.ToString())); t.Start(); } var grilla = _grillaWsResultado(); return(View(new GridModel <grillaResultado>(grilla))); }
//[WebMethod] public ActionResult ObtenerDListas(int idCampo) { WebServiceModel s = new WebServiceModel(); List <CodigosCampo> listaCod = s.consultarOpcionesLista(idCampo); string DescCampos = ""; for (int i = 0; i < listaCod.Count; i++) { if (DescCampos.Trim() == "") { DescCampos = listaCod[i].CodDescripcion.ToString(); } else { DescCampos = DescCampos + "," + listaCod[i].CodDescripcion.ToString(); } } ViewData["data"] = DescCampos; return(View()); }
public string guardarResultadoSAP(string resultadoSAP, string usuario, string negID) { try { string ArchivoXml = resultadoSAP; string resultadoRCODE = ""; //***************************************************************** XmlDocument xml = new XmlDocument(); xml.LoadXml(ArchivoXml); XmlNamespaceManager ns = new XmlNamespaceManager(xml.NameTable); ns.AddNamespace("soap-env", "http://schemas.xmlsoap.org/soap/envelope/"); ns.AddNamespace("n0", "urn:sap-com:document:sap:rfc:functions"); List <WS_RESULTADO> listaResultado = new List <WS_RESULTADO>(); XmlNodeList xnLista = xml.SelectNodes("/soap-env:Envelope/soap-env:Body/n0:YCONSOLA_CARGA_WSResponse/IT_RESULTADO/item", ns); foreach (XmlNode item in xnLista) { WS_RESULTADO datosResultado = new WS_RESULTADO { NEG_ID_CABECERA = Convert.ToDecimal(negID), OK_CODE = item["OK_CODE"].InnerText, DESCRIPTION = item["DESCRIPCION"].InnerText, FECHA_RESPUESTA = DateTime.Now }; XmlNodeList xnLista2 = xml.SelectNodes("/soap-env:Envelope/soap-env:Body/n0:YCONSOLA_CARGA_WSResponse", ns); foreach (XmlNode item2 in xnLista2) { datosResultado.RCODE = item2["RCODE"].InnerText; resultadoRCODE = item2["RCODE"].InnerText; } listaResultado.Add(datosResultado); } //***************************************************************** //Instancia para guardar el resultado GestorDocumentalEnt data = new GestorDocumentalEnt(); //Realizar el insert a la tabla de resultados. for (int i = 0; i < listaResultado.Count; i++) { WS_RESULTADO dataResultado = new WS_RESULTADO { NEG_ID_CABECERA = listaResultado[i].NEG_ID_CABECERA, RCODE = listaResultado[i].RCODE, OK_CODE = listaResultado[i].OK_CODE, DESCRIPTION = listaResultado[i].DESCRIPTION, FECHA_RESPUESTA = listaResultado[i].FECHA_RESPUESTA }; data.AddToWS_RESULTADO(dataResultado); data.SaveChanges(); } WebServiceModel wsOp = new WebServiceModel(); bool resultadoValidacion = wsOp.validaAsignacionTareas(Convert.ToInt32(negID), 60); string resultadoFinal = ""; switch (resultadoRCODE) { //Cuando es Cero(0), Significa que la factura ser guardo correctamente en SAP case "0": if (resultadoValidacion) { wsOp.updateAsignacionTareas(1, Convert.ToInt32(negID), Convert.ToInt32(usuario), 60); resultadoFinal = "La factura ha sido transmitida correctamente a SAP"; } else { AsignacionTareas dataAsignacionOK = new AsignacionTareas { NegId = Convert.ToDecimal(negID), IdEtapa = 60, Usuario = Convert.ToDecimal(usuario), HoraInicio = DateTime.Now, HoraTerminacion = DateTime.Now, IdEstado = 30 }; data.AddToAsignacionTareas(dataAsignacionOK); data.SaveChanges(); resultadoFinal = "La factura ha sido transmitida correctamente a SAP"; } break; //Cuando el Noventa y Nueve(99), Significa que la factura no se guardo correctamente y arrojo errores. case "99": if (resultadoValidacion) { wsOp.updateAsignacionTareas(2, Convert.ToInt32(negID), Convert.ToInt32(usuario), 60); resultadoFinal = "La factura no ha sido transmitida correctamente a SAP"; } else { AsignacionTareas dataAsignacionError = new AsignacionTareas { NegId = Convert.ToDecimal(negID), IdEtapa = 60, Usuario = Convert.ToDecimal(usuario), HoraInicio = DateTime.Now, HoraTerminacion = DateTime.Now, IdEstado = 141 }; data.AddToAsignacionTareas(dataAsignacionError); data.SaveChanges(); resultadoFinal = "La factura no ha sido transmitida correctamente a SAP"; } break; } return(resultadoFinal); } catch (Exception e) { LogRepository.registro("Error en TransmicionXMLController metodo guardarResultadoSAP " + e.Message + " stack trace " + e.StackTrace); throw e; } }
public static string CrearXMLFile(int negID) { try { string rutaFinalArchivo = ""; WebServiceModel ws = new WebServiceModel(); List <DatosEntrada> Y_ConsoltaFactura = new List <DatosEntrada>(); List <Factura_cabecera> facturaCabecera = new List <Factura_cabecera>(); List <Factura_posiciones> facturaPosiciones = new List <Factura_posiciones>(); List <Factura_impuestos> facturaImpuestos = new List <Factura_impuestos>(); int cont = 0; string nombreFactura = ""; Y_ConsoltaFactura = ws.obtenerDatosEntrada(negID); foreach (DatosEntrada datos in Y_ConsoltaFactura) { facturaCabecera = ws.obtenerDatosFacturaCabecera(datos.id_neg_cabecera); facturaPosiciones = ws.obtenerDatosFacturaPosiciones(datos.id_neg_cabecera); facturaImpuestos = ws.obtenerDatosFacturaImpuestos(datos.id_neg_cabecera); XElement FacturaXML = new XElement("YCONSOLA_CARGA_WS", new XAttribute(XNamespace.Xmlns + "n0", "urn:sap-com:document:sap:rfc:functions")); for (int i = 0; i < 1; i++) { XElement accion = new XElement("Accion".ToUpper(), Y_ConsoltaFactura[cont].accion.Trim()); FacturaXML.Add(accion); for (int a = 0; a < facturaCabecera.Count; a++) { string fecha = string.Format("{0:yyyy-MM-dd}", facturaCabecera[a].doc_date); XElement FactCabecera; FactCabecera = new XElement("Factura_cabecera".ToUpper(), new XElement("Fact_id".ToUpper(), formateaEtiqueta(facturaCabecera[a].fac_id.Trim())), new XElement("doc_type".ToUpper(), formateaEtiqueta(facturaCabecera[a].doc_type.Trim())), new XElement("doc_number".ToUpper(), formateaEtiqueta(facturaCabecera[a].doc_number.Trim())), new XElement("doc_date".ToUpper(), formateaEtiqueta(fecha)), new XElement("vendor_rfc".ToUpper(), formateaEtiqueta(facturaCabecera[a].vendor_rfc.Trim())), new XElement("company_rfc".ToUpper(), formateaEtiqueta(facturaCabecera[a].company_rfc.Trim())), new XElement("total_amount".ToUpper(), facturaCabecera[a].total_amount), new XElement("currency_code".ToUpper(), formateaEtiqueta(facturaCabecera[a].currency_code.Trim())), formateaEtiqueta(facturaCabecera[a].employee_number.ToString()) == null ? new XElement("employee_number".ToUpper()) : new XElement("employee_number".ToUpper(), facturaCabecera[a].employee_number), formateaEtiqueta(facturaCabecera[a].purchase_order.Trim()) == null ? new XElement("purchase_order".ToUpper()) : new XElement("purchase_order".ToUpper(), facturaCabecera[a].purchase_order.Trim()), formateaEtiqueta(facturaCabecera[a].discount_amount.ToString()) == null ? new XElement("discount_amount".ToUpper()) : new XElement("discount_amount".ToUpper(), facturaCabecera[a].discount_amount), formateaEtiqueta(facturaCabecera[a].withholding_tax.ToString()) == null ? new XElement("witholding_tax".ToUpper()) : new XElement("witholding_tax".ToUpper(), facturaCabecera[a].withholding_tax), formateaEtiqueta(facturaCabecera[a].advance_flag) == null ? new XElement("advance_flag".ToUpper()) : new XElement("advance_flag".ToUpper(), formateaEtiqueta(facturaCabecera[a].advance_flag.Trim())), //NUEVA ETIQUETA PARA EL CAMBIO DE COSTARICA Y PANAMA. formateaEtiqueta(facturaCabecera[a].fiscal_doc_number) == null ? new XElement("fiscal_doc_number".ToUpper()) : new XElement("fiscal_doc_number".ToUpper(), formateaEtiqueta(facturaCabecera[a].fiscal_doc_number.Trim()))); FacturaXML.Add(FactCabecera); nombreFactura = facturaCabecera[a].fac_id.Trim(); } XElement FactImpuestos = new XElement("Factura_impuestos".ToUpper()); for (int s = 0; s < facturaImpuestos.Count; s++) { XElement itemsFactImpuestos = new XElement("item", new XElement("vat_base_amount".ToUpper(), facturaImpuestos[s].vat_base_amount), new XElement("vat_percentage".ToUpper(), facturaImpuestos[s].vat_percentage), new XElement("vat_tax_amount".ToUpper(), facturaImpuestos[s].vat_tax_amount), formateaEtiqueta(facturaImpuestos[s].vat_tax_id) == null ? new XElement("vat_tax_id".ToUpper().Trim()) : new XElement("vat_tax_id".ToUpper().Trim(), formateaEtiqueta(facturaImpuestos[s].vat_tax_id)) ); FactImpuestos.Add(itemsFactImpuestos); } FacturaXML.Add(FactImpuestos); #region Convertir el archivo PDF a un string Base64 byte[] archivoPDF = convertirArchivo(Y_ConsoltaFactura[cont].facturaPDFBase64); string hex = ""; if (archivoPDF != null) { hex = Convert.ToBase64String(archivoPDF); } string nombreArchivo = "@" + Y_ConsoltaFactura[cont].facturaPDFBase64; string extensionArchivo = Path.GetExtension(nombreArchivo); XElement FactPDF = new XElement("factura_pdf_base64".ToUpper(), new XCData(hex)); FacturaXML.Add(FactPDF); if (hex != "") { GuardarArchivo(archivoPDF, nombreFactura.ToString(), extensionArchivo); } #endregion Fin de la conversion del archivo PDF XElement FactPosiciones = new XElement("Factura_posiciones".ToUpper()); for (int e = 0; e < facturaPosiciones.Count; e++) { string fecha = string.Format("{0:yyyy-MM-dd}", facturaPosiciones[e].deliveryDate); XElement itemsPosiciones = new XElement("item", formateaEtiqueta(facturaPosiciones[e].delivery_note.Trim()) == null ? new XElement("delivery_note".ToUpper()) : new XElement("delivery_note".ToUpper(), formateaEtiqueta(facturaPosiciones[e].delivery_note.Trim())), formateaEtiqueta(fecha) == null ? new XElement("delivery_date".ToUpper()) : new XElement("delivery_date".ToUpper(), formateaEtiqueta(fecha)), formateaEtiqueta(facturaPosiciones[e].item_text.Trim()) == null ? new XElement("item_text".ToUpper()) : new XElement("item_text".ToUpper(), formateaEtiqueta(facturaPosiciones[e].item_text.Trim())), new XElement("item_quantity".ToUpper(), facturaPosiciones[e].item_quantity), new XElement("item_price".ToUpper(), facturaPosiciones[e].item_price), new XElement("item_amount".ToUpper(), facturaPosiciones[e].item_amount), new XElement("item_percentage".ToUpper(), facturaPosiciones[e].item_percentage)); FactPosiciones.Add(itemsPosiciones); } FacturaXML.Add(FactPosiciones); XElement land = new XElement("Land1".ToUpper(), Y_ConsoltaFactura[cont].land1.Trim()); FacturaXML.Add(land); XElement origen = new XElement("origen".ToUpper(), Y_ConsoltaFactura[cont].origen.Trim()); FacturaXML.Add(origen); } string rutaFacturas = System.Configuration.ConfigurationManager.AppSettings["RutaFacturasXML"].ToString(); string nomArchivo = nombreFactura; string archivo = rutaFacturas + "FACT_" + nomArchivo + ".xml"; FacturaXML.Save(archivo); //Update el estado de la factura a 1 decimal negId = Y_ConsoltaFactura[cont].id_neg_cabecera; ws.updateFacturaEstado(negId); cont++; reemplazarArchivo(archivo); rutaFinalArchivo = archivo; } return(rutaFinalArchivo); } catch (Exception ex) { return("Error al crear el fichero XML: " + ex.Message); } }
WebServiceModel IFetchCustomer.GetCustomerDetails(string CUSTOMER_NO) { var model = new WebServiceModel(); model.Fields = new Dictionary <string, object>(); model.RETCODE = 998; model.RESPONSEDESCRIPTION = "Customer has no critical data issues"; string connString = ConfigurationManager.ConnectionStrings["AppDbContext"].ToString(); string schemaname = ConfigurationManager.AppSettings["SchemaName"].ToString(); string[] critical_fields = { "SURNAME", "FIRSTNAME", "DATE_OF_BIRTH", "SEX", "MARITAL_STATUS", "STATE_OF_ORIGIN", "EMPLOYMENT_STATUS", "MOBILE_NO", "EMAIL_ADDRESS", "MAILING_ADDRESS" }; string[] date_fields = { "DATE_OF_BIRTH" }; AppDbContext db = new AppDbContext(); var customer = db.CDMA_INDIVIDUAL_BIO_DATA.Where(x => x.CUSTOMER_NO == CUSTOMER_NO).FirstOrDefault(); if (customer == null) { model = (new WebServiceModel { RETCODE = 999, RESPONSEDESCRIPTION = "Customer does not exist" }); } else { var issuefileds = db.MdmDqRunExceptions.Where(a => a.CUST_ID == CUSTOMER_NO).ToList(); if (issuefileds.Count == 0) { model = (new WebServiceModel { RETCODE = 998, RESPONSEDESCRIPTION = "Customer has no data issues" }); } else { foreach (var column in issuefileds) { if (critical_fields.Contains(column.CATALOG_TAB_COL)) { var query = "SELECT " + column.CATALOG_TAB_COL + " from " + column.CATALOG_TABLE_NAME + " WHERE CUSTOMER_NO = '" + CUSTOMER_NO + "' "; using (SqlConnection connection = new SqlConnection(connString)) { connection.Open(); SqlCommand command = new SqlCommand(query, connection); SqlDataReader rdr = command.ExecuteReader(); if (rdr.HasRows) { while (rdr.Read()) { if (date_fields.Contains(column.CATALOG_TAB_COL)) { model.RETCODE = 0; model.RESPONSEDESCRIPTION = "Success"; model.Fields.Add(column.CATALOG_TAB_COL, rdr.GetDateTime(rdr.GetOrdinal("" + column.CATALOG_TAB_COL + ""))); } else { model.RETCODE = 0; model.RESPONSEDESCRIPTION = "Success"; model.Fields.Add(column.CATALOG_TAB_COL, rdr.GetString(rdr.GetOrdinal("" + column.CATALOG_TAB_COL + ""))); } } } } } } } } return(model); }