protected void GridViewDatosFactura_RowUpdating(object sender, GridViewUpdateEventArgs e) { string idFactura = GridViewDatosFactura.DataKeys[e.RowIndex].Values["id_factura"].ToString(); string numero = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbNumeroFacturaEditar")).Text; string fechaEmision = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbEmisionFacturaEditar")).Text; string fechaEntrega = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbEntregaFacturaEditar")).Text; string monto = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbMontoFacturaEditar")).Text; string moneda = ((DropDownList)GridViewDatosFactura.Rows[e.RowIndex].FindControl("ddlMonedaFacturaEditar")).SelectedItem.Value; long idFactura_ = Convert.ToInt64(idFactura); long numero_ = Convert.ToInt64(numero); DateTime fechaEmision_ = DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime fechaEntrega_ = DateTime.ParseExact(fechaEntrega, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); double monto_ = Convert.ToDouble(monto); Int16 moneda_ = Convert.ToInt16(moneda); double tipo_cambio_ = 1.0; double.TryParse(txbTipoCambio.Text, out tipo_cambio_); LiquidacionICRL.TipoLiquidacion001Factura factura = new LiquidacionICRL.TipoLiquidacion001Factura(); int.TryParse(Request.QueryString["idflujo"], out IdFlujo); factura.id_flujo = IdFlujo; factura.id_factura = idFactura_; factura.numero_factura = numero_; factura.fecha_emision = fechaEmision_; factura.fecha_entrega = fechaEntrega_; factura.monto = monto_; factura.id_moneda = moneda_; factura.tipo_cambio = tipo_cambio_; bool operacionExitosa = LiquidacionICRL.ActualizarLiquidacion001Factura(factura); if (operacionExitosa) { //string numeroViejo = e.OldValues[""] GridViewDatosFactura.EditIndex = -1; ActualizarAjusteMenor("0"); //cada vez que se actualiza una factura se actualiza el dato de ajuste ActualizarDatosOrden(((Label)GridViewDatosFactura.Rows[e.RowIndex].FindControl("lblNumeroFacturaEditar")).Text); //cada vez que se actualiza una factura, se actualiza la orden asociada RecuperarDatosFacturas(); RecuperarDatosOrdenes(); LlenarMenuFacturas(); RecuperarDatosLiquidacion(); LabelMensaje.Visible = false; } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error al guardar la factura!"; } }
private void ActualizarAjusteMenor(string monto) { LiquidacionICRL.TipoTraerLiquidacion001Factura facturas = LiquidacionICRL.TraerLiquidacion001Factura(IdFlujo); LiquidacionICRL.TipoLiquidacion001Factura registroAjusteMenor = facturas.Facturas.Find(x => x.numero_factura == 0); double monto_ = Convert.ToDouble(monto); if (registroAjusteMenor == null) {//Se crea el registro de AJUSTE MENOR registroAjusteMenor = new LiquidacionICRL.TipoLiquidacion001Factura(); registroAjusteMenor.id_flujo = IdFlujo; registroAjusteMenor.monto = monto_; registroAjusteMenor.observaciones = "(ajuste menor)"; registroAjusteMenor.asociada = true; LiquidacionICRL.RegistrarLiquidacion001Factura(registroAjusteMenor); } else {//Se actualiza el registro de AJUSTE MENOR registroAjusteMenor.monto = monto_; LiquidacionICRL.ActualizarLiquidacion001Factura(registroAjusteMenor); } }
protected void btnGuardarLiquidacion_Click(object sender, EventArgs e) { bool operacionExitosa = true; foreach (GridViewRow row in GridViewDatosLiquidacion.Rows) { if (row.RowType == DataControlRowType.DataRow) { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); string idFactura = ((Label)row.FindControl("lblId")).Text; string numero = ((Label)row.FindControl("lblNumero")).Text; string fechaEmision = ((Label)row.FindControl("lblFechaEmision")).Text; string fechaEntrega = ((Label)row.FindControl("lblFechaRecepcion")).Text; string monto = ((Label)row.FindControl("lblLiquidacionBs")).Text; string moneda = ((Label)row.FindControl("lblMoneda")).Text; string observaciones = ((TextBox)row.FindControl("txbObservaciones")).Text; bool asociada = true; double tipo_cambio_ = 1.0; double.TryParse(txbTipoCambio.Text, out tipo_cambio_); if (!string.IsNullOrWhiteSpace(idFactura)) {//actualizar facturas liquidadas long idFactura_ = Convert.ToInt64(idFactura); long numero_ = Convert.ToInt64(numero); DateTime fechaEmision_ = DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime fechaEntrega_ = DateTime.ParseExact(fechaEntrega, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); double monto_ = Convert.ToDouble(monto); Int16 moneda_ = Convert.ToInt16(moneda); LiquidacionICRL.TipoLiquidacion001Factura factura = new LiquidacionICRL.TipoLiquidacion001Factura(); factura.id_flujo = IdFlujo; factura.id_factura = idFactura_; factura.numero_factura = numero_; factura.fecha_emision = fechaEmision_; factura.fecha_entrega = fechaEntrega_; factura.monto = monto_; factura.id_moneda = moneda_; factura.observaciones = observaciones; factura.asociada = asociada; factura.tipo_cambio = tipo_cambio_; operacionExitosa = LiquidacionICRL.ActualizarLiquidacion001Factura(factura); if (!operacionExitosa) { break; } } else {//actualizar ajuste menor ActualizarAjusteMenor(monto); } } } LabelMensaje.Visible = true; if (operacionExitosa) { btnGuardarLiquidacion.Enabled = false; btnAjusteMenor.Enabled = false; btnLiquidacionTotal.Enabled = true; LabelMensaje.Text = "Liquidación guardada exitosamente!"; } else { btnGuardarLiquidacion.Enabled = true; LabelMensaje.Text = "Error al guardar la liquidación!"; } }