private void EnviarSalidasSap(ref DI.DiConexion diConexion, BE.Empresa beEmpresa) { int errCode = 0; string errMessage = ""; try { var beTipoSalida = new BD.TipoDocumento().Obtener(SALIDA); var bdSap = new BD.Sap(diConexion.Server, diConexion.CompanyDB, diConexion.DbUserName, diConexion.DbPassword); var bdError = new BD.Error(); var diSalida = new DI.DiSalidaAlmacen(diConexion.oCompany); var bdSalida = new BD.SalidaAlmacen(); foreach (var salidaJson in this.lstWsSalidas) { var salidaSe = TD.JsonToSe.SalidaAlmacen(salidaJson); salidaSe.Serie = bdSap.ObtenerSerieSalidaAlmacen(this.serie); for (int i = 0; i < salidaSe.Detalle.Count; i++) { salidaSe.Detalle[i].CodAlmacen = bdSap.ObtenerCodigoAlmacen(salidaSe.Detalle[i].Codigo); } string docEntry = diSalida.Enviar(salidaSe, out errCode, out errMessage); if (docEntry.Length > 0) { salidaSe.DocEntry = int.Parse(docEntry); } var beSalida = TD.SeToBe.SalidaAlmacen(salidaSe); beSalida.Empresa = beEmpresa; beSalida.TipoDocumento = beTipoSalida; var rpta = bdSalida.Insertar(ref beSalida); if (rpta == true && docEntry.Length == 0) { this.RegistrarErrorSap(SALIDA, beSalida.IdSalidaAlmacen, errMessage); } } } catch (Exception ex) { throw ex; } }
private void btnEnviar_Click(object sender, EventArgs e) { try { this.btnEnviar.Enabled = false; this.stlMensaje.Text = string.Empty; if (this.dgvDocumentosError.CurrentRow == null) { return; } var uiDocumento = (Documento)this.dgvDocumentosError.CurrentRow.DataBoundItem; if (uiDocumento.Estado != ERROR) { return; } int errCode = 0; string errMessage = ""; var beEmpresa = new BD.Empresa().Obtener(uiDocumento.EmpresaId); var beConfiguracion = new BD.Configuracion().Obtener(beEmpresa); string server = beConfiguracion.Servidor; string licenseServer = beConfiguracion.LicenciaSAP; string companyDB = beConfiguracion.BaseDatos; string dbUserName = beConfiguracion.UsuarioBD; string dbPassword = beConfiguracion.ClaveBD; string userName = beConfiguracion.UsuarioSAP; string password = beConfiguracion.ClaveSAP; this.stlMensaje.Text = $"Conectando al SBO de la compañia { beConfiguracion.Empresa.Nombre }"; using (var sbo = new DI.DiConexion(server, licenseServer, companyDB, dbUserName, dbPassword, userName, password)) { var sapBd = new BD.Sap(server, companyDB, dbUserName, dbPassword); var errorBd = new BD.Error(); switch (uiDocumento.TipoId) { case SALIDA: // "Salida de Almacen": var bdSalida = new BD.SalidaAlmacen(); var beSalida = bdSalida.Obtener(uiDocumento.Id); if (beSalida != null) { var seSalida = TD.BeToSe.SalidaAlmacen(beSalida); this.stlMensaje.Text = $"Enviando Salida de Almacen"; string docEntry = new DI.DiSalidaAlmacen(sbo.oCompany).Enviar(seSalida, out errCode, out errMessage); if (docEntry.Length > 0) { beSalida.CodSap = int.Parse(docEntry); } var rpta = bdSalida.Actualizar(beSalida); if (rpta == true && errCode != 0) { this.RegistrarErrorSap(SALIDA, beSalida.IdSalidaAlmacen, errMessage); } } break; case ENTRADA: // "Entrada de Almacen": var bdEntrada = new BD.EntradaAlmacen(); var beEntrada = bdEntrada.Obtener(uiDocumento.Id); if (beEntrada != null) { var seEntrada = TD.BeToSe.EntradaAlmacen(beEntrada); this.stlMensaje.Text = $"Enviando Entrada de Almacen"; string docEntry = new DI.DiEntradaAlmacenPorCompra(sbo.oCompany).Enviar(seEntrada, out errCode, out errMessage); if (docEntry.Length > 0) { beEntrada.CodSap = int.Parse(docEntry); } var rpta = bdEntrada.Actualizar(beEntrada); if (rpta == true && errCode != 0) { this.RegistrarErrorSap(SALIDA, beEntrada.IdEntradaAlmacen, errMessage); } } break; case SOLICITUD: // "Solicitud de Compra": var bdSolicitud = new BD.SolicitudCompra(); var beSolicitud = bdSolicitud.Obtener(uiDocumento.Id); if (beSolicitud != null) { var seSolicitud = TD.BeToSe.SolicitudCompra(beSolicitud); this.stlMensaje.Text = $"Enviando Solicitud de Compra"; string docEntry = new DI.DiSolicitudCompra(sbo.oCompany).Enviar(seSolicitud, out errCode, out errMessage); if (docEntry.Length > 0) { beSolicitud.CodSap = int.Parse(docEntry); } var rpta = bdSolicitud.Actualizar(beSolicitud); if (rpta == true && errCode != 0) { this.RegistrarErrorSap(SOLICITUD, beSolicitud.IdSolicitudCompra, errMessage); } } break; default: break; } } this.stlMensaje.Text = "Sincronización Completada"; this.CargarDocumentosError(); } catch (Exception ex) { General.ErrorMessage(ex.Message); } finally { this.btnEnviar.Enabled = true; } }