public override void proGrabar() { base.proGrabar(); try { //Eliminamos las filas vacias del detalle objDetalle.RemoveAll(p => p.IteCodigo.Equals("")); //Verificamos las validaciones de los campos requeridos if (!varBanValidaciones) { return; } //Validamos que todos los datos se han llenado correctamente en el detalle string varMensaje = clsGraLaboratorioDet.funValidarDetalle(objDetalle); //Refrescamos el detalle despues de eliminar this.grcListado.RefreshDataSource(); //Verificamos si existe un error if (!varMensaje.Equals("")) { throw new Exception(varMensaje); } //Asignamos los valores de la propiedades de la clase animal var csRegistro = new clsGraLaboratorioCab() { CabCodigo = this.txtCodigo.Text.Equals("") ? 0 : int.Parse(this.txtCodigo.Text), DocCodigo = this.txtCodSerie.Text.Equals("") ? 0 : int.Parse(this.txtCodSerie.Text), CabNumero = this.txtNumero.Text.Equals("") ? 0 : int.Parse(this.txtNumero.Text), AnmCodigo = this.gluAnimal.EditValue.Equals("") ? 0 : int.Parse(this.gluAnimal.EditValue.ToString()), CabDosis = this.txtDosis.Text.Equals("") ? 0 : int.Parse(this.txtDosis.Text), CabFecha = (DateTime)datFecha.EditValue, AnmAlternativo = this.gluAnimal.Text, IteCodigo = this.bedItem.Text, IteNombre = this.txtIteNombre.Text, CabLote = this.txtLote.Text, BodCodigo = this.lueBodega.EditValue.ToString(), CabComentario = this.memObsDocumento.Text, CabComenDiario = this.memObsDiario.Text, CabCstInicial = decimal.Parse(this.txtCstInicial.Text) }; //Enviamos la informacion a la base de datos int varCodigo = csRegistro.funMantenimiento(varOpeCodigo, objDetalle); //Si no hay ningun error procedemos a mostrar el mensaje respectivo switch (varOpeCodigo) { case 1: XtraMessageBox.Show(string.Format("Registro ingresado con la nro: {0}", varCodigo), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); break; case 2: XtraMessageBox.Show("Registro ha sido actualizado", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); break; default: break; } this.Close(); } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void proEnviarSAP(int varRegistro) { try { string varMensaje = ""; int varDocEntry = 0; int varDocNum = 0; //Instanciamos la clase de laboratorio clsGraLaboratorioCab objLaboratorioCab = new clsGraLaboratorioCab(); //Recuperamos la informacion de cabecera del registro de laboratorio objLaboratorioCab = clsGraLaboratorioCab.funListar(varRegistro)[0]; //Verificamos que nos exista valores en cero en los costos acumulados if (clsGraCstAcumulado.funVerificarCstAcumulado(objLaboratorioCab.AnmCodigo, objLaboratorioCab.CabFecha) > 0) { XtraMessageBox.Show(string.Format("Favor de verificar que los movimientos de inventario relacionados con la chapeta: {0} se encuentren enviados a SAP", objLaboratorioCab.AnmAlternativo), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Verificamos si el documento ya ha sido ingresado en SAP DataTable objDtVerificarSAP; objDtVerificarSAP = clsGraLaboratorioCab.funVerificarSalInventarioSAP(objLaboratorioCab.DocNombre, objLaboratorioCab.CabNumero); //Verifico si el documento no haya sido enviado a SAP if (objLaboratorioCab.EstCodigo.ToUpper().Equals("SAP") || objDtVerificarSAP.Rows.Count > 0) { //Actualizacion en el formulario de movimientos de inventario varDocEntry = int.Parse(objDtVerificarSAP.Rows[0]["DocEntry"].ToString()); varDocNum = int.Parse(objDtVerificarSAP.Rows[0]["DocNum"].ToString()); clsGraLaboratorioCab.proActMovInventarioSalida(varDocEntry, varDocNum, objLaboratorioCab.CabCodigo); clsGraLaboratorioCab.proActCstAcumulado(varDocEntry, objLaboratorioCab.CabCodigo); XtraMessageBox.Show(string.Format("El registro nro. {0} ya ha sido enviado a SAP", objLaboratorioCab.CabNumero), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { varMensaje = objLaboratorioCab.funEnviarSalMercanciaSAP(); } //Verifico si el documento de diario no haya sido enviado a SAP objDtVerificarSAP = clsGraLaboratorioCab.funVerificarDiarioSAP(objLaboratorioCab.DocNombre, objLaboratorioCab.CabNumero); //Verifico si el documento no haya sido enviado a SAP if (objLaboratorioCab.EstCodigo.ToUpper().Equals("SAP") || objDtVerificarSAP.Rows.Count > 0) { //Actualizacion en el formulario de movimientos de inventario varDocEntry = int.Parse(objDtVerificarSAP.Rows[0]["TransId"].ToString()); varDocNum = int.Parse(objDtVerificarSAP.Rows[0]["Number"].ToString()); clsGraLaboratorioCab.proActDiario(varDocEntry, varDocNum, objLaboratorioCab.CabCodigo); //Actualizamos las lineas del detalle de actualizacion de costos clsGraCstAcumulado.proActualizarCstAcumulado(objLaboratorioCab.AnmCodigo, objLaboratorioCab.CabFecha, "Bla", "GRA_DETLABORATORIO", "LABORATORIO", objLaboratorioCab.CabCodigo); //Actualizamos las lineas del detalle de actualizacion de costos standares clsGraCstStdAcumulado.proActualizarCstStdAcumulado(objLaboratorioCab.AnmCodigo, objLaboratorioCab.CabFecha, "Bla", objLaboratorioCab.CabCodigo); XtraMessageBox.Show(string.Format("El registro nro. {0} ya ha sido enviado a SAP", objLaboratorioCab.CabNumero), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { varMensaje = objLaboratorioCab.funEnviarDiarioSAP(); } objDtVerificarSAP = clsGraLaboratorioCab.funVerificarEntInventarioSAP(objLaboratorioCab.DocNombre, objLaboratorioCab.CabNumero); //Verifico si el documento no haya sido enviado a SAP if (objLaboratorioCab.EstCodigo.ToUpper().Equals("SAP") || objDtVerificarSAP.Rows.Count > 0) { //Actualizacion en el formulario de movimientos de inventario varDocEntry = int.Parse(objDtVerificarSAP.Rows[0]["DocEntry"].ToString()); varDocNum = int.Parse(objDtVerificarSAP.Rows[0]["DocNum"].ToString()); clsGraLaboratorioCab.proActMovInventarioEntrada(varDocEntry, varDocNum, objLaboratorioCab.CabCodigo); XtraMessageBox.Show(string.Format("El registro nro. {0} ya ha sido enviado a SAP", objLaboratorioCab.CabNumero), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { varMensaje = objLaboratorioCab.funEnviarEntMercanciaSAP(); } if (varMensaje.Equals("")) { XtraMessageBox.Show(string.Format("Registro nro {0} enviado a SAP", objLaboratorioCab.CabNumero), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { XtraMessageBox.Show(string.Format("Registro nro {0} presento el siguiente error: {1}", objLaboratorioCab.CabNumero, varMensaje), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception e) { throw new Exception(e.Message); } }