//Operacion de guardar public override void proGrabar() { base.proGrabar(); try { //Eliminamos las filas vacias del detalle objDetalle.RemoveAll(p => p.DetCantNeta.Equals(0) && p.DetCantBruta.Equals(0)); //Verificamos las validaciones de los campos requeridos if (!varBanValidaciones) { return; } //Modificamos la informacion de los resumentes foreach (clsComEntMercanciasDet objFilaDetalle in objDetalle) { clsComEntMercanciasRes objFilaResumen = objDetalleRes.Where(p => p.IteCodigo == objFilaDetalle.IteCodigo).ToList <clsComEntMercanciasRes>()[0]; objFilaDetalle.DetUnidad = objFilaResumen.DetUnidad; objFilaDetalle.DetCantidad = objFilaResumen.DetCantidad; objFilaDetalle.DetCosto = objFilaResumen.DetCosto; objFilaDetalle.DetTotal = objFilaResumen.DetTotal; } //Refrescamos el detalle despues de eliminar this.grcListado.RefreshDataSource(); var csRegistro = new clsComEntMercanciasCab() { CabCodigo = this.txtCodigo.Text.Equals("") ? 0 : int.Parse(this.txtCodigo.Text), DocCodigo = this.txtCodSerie.Text.Equals("") ? 0 : int.Parse(this.txtCodSerie.Text), DocNombre = this.txtNomSerie.Text, CabNumero = this.txtNumero.Text.Equals("") ? 0 : int.Parse(this.txtNumero.Text), CabLstPrecio = this.txtListaPrecio.Text.Equals("") ? 0 : int.Parse(this.txtListaPrecio.Text), CabEntrySap = 0, CabNumSap = 0, CabFecha = (DateTime)this.datFecha.EditValue, PrvCodigo = this.bedProveedor.EditValue.ToString(), PrvNombre = this.txtNombre.Text, BodCodigo = this.lueBodega.EditValue.ToString(), CabImportacion = this.txtImportacion.Text, CabComentario = this.memObservacion.Text, CabLote = this.txtLote.Text, CabTipCompra = this.cmbTipo.Text, CabTotNeto = decimal.Parse(this.txtTotalNeto.Text), CabTotCamal = this.txtTotalCamal.Text.Equals("") ? 0 : decimal.Parse(this.txtTotalCamal.Text), CabDiferencia = decimal.Parse(this.txtDiferencia.Text), CabTolerancia = this.txtTolerancia.Text.Equals("") ? 0 : decimal.Parse(this.txtTolerancia.Text), }; int varCodigo = csRegistro.funMantenimiento(varOpeCodigo, objDetalle); if (!varCodigo.Equals(0)) { this.txtNumero.EditValue = varCodigo; if (!varBandGuardar) { if (XtraMessageBox.Show("Desea imprimir la tirilla", "Informacion", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { this.impDocumento.Print(); } } if (varOpeCodigo.Equals(1)) { XtraMessageBox.Show(string.Format("El registro actual ha sido grabado con el nro: {0}", varCodigo), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { XtraMessageBox.Show("Registro grabado con exito", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (!varBandGuardar) { if (this.puertoSerial.IsOpen) { this.puertoSerial.Close(); } this.Close(); } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//Operacion enviar a SAP private void btnEnviarSAP_Click(object sender, EventArgs e) { try { int varRegistro = 0; //Verificamos si selecciono una sola fila if (grvListado.GetSelectedRows().Length.Equals(0)) { //Recuperamos el codigo del documento seleccionado varCodDocumento = ((clsComEntMercanciasCab)this.grvListado.GetRow(this.grvListado.FocusedRowHandle)).DocCodigo; int varCuantos = clsSegAccFormulario.funAccesoOperacion(clsVariablesGlobales.varCodUsuario, varCodFormulario, varCodDocumento, 10); //Si ya ha sido enviado a SAP terminamos el proceso if (varCuantos.Equals(0)) { XtraMessageBox.Show("El usuario no tiene acceso para enviar a SAP el documento seleccionado", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Recuperamos el codigo interno del registro de laboratorio varRegistro = ((clsComEntMercanciasCab)this.grvListado.GetRow(this.grvListado.FocusedRowHandle)).CabCodigo; clsComEntMercanciasCab csComEntMercancias = clsComEntMercanciasCab.funListar(varRegistro)[0]; string varMensaje = ""; if (csComEntMercancias.CabTipCompra.Equals("EXTERNO")) { varMensaje = csComEntMercancias.funEnviarDocPreliminarSAP(); } else { clsComEntMercanciasCab.proActEstado(varRegistro); } if (varMensaje.Equals("")) { XtraMessageBox.Show(string.Format("Registro nro {0} enviado a SAP", csComEntMercancias.CabNumero), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { XtraMessageBox.Show(string.Format("Registro nro {0} presento el siguiente error: {1}", csComEntMercancias.CabNumero, varMensaje), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } foreach (int varPosicion in this.grvListado.GetSelectedRows()) { //Recuperamos el codigo del documento seleccionado varCodDocumento = ((clsComEntMercanciasCab)this.grvListado.GetRow(varPosicion)).DocCodigo; int varCuantos = clsSegAccFormulario.funAccesoOperacion(clsVariablesGlobales.varCodUsuario, varCodFormulario, varCodDocumento, 10); //Si ya ha sido enviado a SAP terminamos el proceso if (varCuantos.Equals(0)) { XtraMessageBox.Show("El usuario no tiene acceso para enviar a SAP el documento seleccionado", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Recuperamos el codigo interno del registro de laboratorio varRegistro = ((clsComEntMercanciasCab)this.grvListado.GetRow(varPosicion)).CabCodigo; clsComEntMercanciasCab csComEntMercancias = clsComEntMercanciasCab.funListar(varRegistro)[0]; string varMensaje = ""; if (csComEntMercancias.CabTipCompra.Equals("EXTERNO")) { varMensaje = csComEntMercancias.funEnviarDocPreliminarSAP(); } else { clsComEntMercanciasCab.proActEstado(varRegistro); } if (varMensaje.Equals("")) { XtraMessageBox.Show(string.Format("Registro nro {0} enviado a SAP", csComEntMercancias.CabNumero), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { XtraMessageBox.Show(string.Format("Registro nro {0} presento el siguiente error: {1}", csComEntMercancias.CabNumero, varMensaje), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //Actualizamos los datos de listado despues de realizar los cambios this.proActListado(); } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }