private bool RegistrarSalidaBD(ref BD.Sap bdSap, BE.Empresa beEmpresa)
        {
            bool rpta = false;

            try
            {
                var beTipoSalida = new BD.TipoDocumento().Obtener(SALIDA);

                var bdSalida = new BD.SalidaAlmacen();

                foreach (var salidaJson in this.lstWsSalidas)
                {
                    SE.SalidaAlmacen seSalida = TD.JsonToSe.SalidaAlmacen(salidaJson);

                    seSalida.Serie = bdSap.ObtenerSerieSalidaAlmacen(this.serie);
                    for (int i = 0; i < seSalida.Detalle.Count; i++)
                    {
                        seSalida.Detalle[i].CodAlmacen = bdSap.ObtenerCodigoAlmacen(seSalida.Detalle[i].Codigo);
                    }

                    var beSalida = TD.SeToBe.SalidaAlmacen(seSalida);
                    beSalida.Empresa       = beEmpresa;
                    beSalida.TipoDocumento = beTipoSalida;

                    var flag = bdSalida.Insertar(ref beSalida);
                }

                return(rpta);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        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;
            }
        }
Beispiel #3
0
        public void Cargar(int idSalidaAlmacen)
        {
            try
            {
                var beSalidaAlmacen = new BD.SalidaAlmacen().Obtener(idSalidaAlmacen);
                if (beSalidaAlmacen != null)
                {
                    this.txtUsuario.Text         = beSalidaAlmacen.Usuario;
                    this.txtEmpresa.Text         = beSalidaAlmacen.Empresa.Nombre;
                    this.dtpFechaDocumento.Value = beSalidaAlmacen.FechaContable;
                    this.txtComentario.Text      = beSalidaAlmacen.Comentario;

                    this.lstUiDetalle = new List <DetalleAlmacen>();
                    foreach (var beDetalle in beSalidaAlmacen.Detalle)
                    {
                        var uiDetalle = new DetalleAlmacen();

                        uiDetalle.NroLinea          = beDetalle.NroLinea;
                        uiDetalle.Codigo            = beDetalle.Codigo;
                        uiDetalle.Descripcion       = beDetalle.Descripcion;
                        uiDetalle.Cantidad          = beDetalle.Cantidad;
                        uiDetalle.CodAlmacen        = beDetalle.CodAlmacen;
                        uiDetalle.DscAlmacen        = "";
                        uiDetalle.CodImpuesto       = beDetalle.CodImpuesto;
                        uiDetalle.DscImpuesto       = "";
                        uiDetalle.CodCuentaContable = "";
                        uiDetalle.DscCuentaContable = "";
                        uiDetalle.NroCuentaContable = beDetalle.CodCuentaContable;
                        uiDetalle.CodProyecto       = beDetalle.CodProyecto;
                        uiDetalle.DscProyecto       = "";
                        uiDetalle.CodCentroCosto    = beDetalle.CodCentroCosto;
                        uiDetalle.DscCentroCosto    = "";

                        this.lstUiDetalle.Add(uiDetalle);
                    }

                    this.dgvDetalle.DataSource = this.lstUiDetalle;
                }
            }
            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;
            }
        }