private void ActualizarDatosOrden(string numeroFactura) { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001 ordenes = LiquidacionICRL.TraerLiquidacion001(IdFlujo); foreach (LiquidacionICRL.TipoLiquidacion001 orden in ordenes.Liquidaciones001) { if (numeroFactura.Trim() == orden.num_factura.Trim()) { LiquidacionICRL.TipoLiquidacion001 ordenModificada = orden; ordenModificada.liquidacion = false; ordenModificada.num_factura = ""; ordenModificada.fecha_liquidacion = new DateTime(2000, 1, 1); LiquidacionICRL.ModificarLiquidacion001(ordenModificada); } } }
protected void btnLiquidacionTotal_Click(object sender, EventArgs e) { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001 ordenes = LiquidacionICRL.TraerLiquidacion001(IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001Factura facturas = LiquidacionICRL.TraerLiquidacion001Factura(IdFlujo); double totalCotizado = 0.0; double totalFacturado = 0.0; List <LiquidacionICRL.TipoLiquidacion001> ordenesActualizadas = new List <LiquidacionICRL.TipoLiquidacion001>(); foreach (LiquidacionICRL.TipoLiquidacion001 orden in ordenes.Liquidaciones001) { if (orden.liquidacion && !string.IsNullOrWhiteSpace(orden.num_factura)) { totalCotizado += orden.preciobs; orden.id_estado = EstadoFlujo; ordenesActualizadas.Add(orden); } } foreach (LiquidacionICRL.TipoLiquidacion001Factura factura in facturas.Facturas) { if (factura.asociada) { totalFacturado += factura.monto; } } if (totalCotizado != 0 && totalCotizado == totalFacturado) { bool operacionExitosaFlujo = LiquidacionICRL.ActualizarFlujo(IdFlujo, EstadoFlujo); foreach (LiquidacionICRL.TipoLiquidacion001 ordenActualizada in ordenesActualizadas) { bool operacionExitosaOrden = LiquidacionICRL.ModificarLiquidacion001(ordenActualizada); if (!operacionExitosaOrden) { break; } } if (operacionExitosaFlujo) { LabelMensaje.Visible = true; LabelMensaje.Text = "LIQUIDACIÓN TOTAL realiza exitosamente!"; BloquearControlesLiquidacion(true); } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error en el proceso de liquidación total!"; } } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Para proceder con la LIQUIDACIÓN TOTAL, los montos de TOTAL COTIZADO y TOTAL PAGADO deben ser iguales."; } }
protected void btnGenerarLiquidacion_Click(object sender, EventArgs e) { bool operacionExitosa = true; List <LiquidacionICRL.TipoLiquidacion001> ordenesLiquidadas = new List <LiquidacionICRL.TipoLiquidacion001>(); foreach (GridViewRow row in GridViewDatosOrden.Rows) { LiquidacionICRL.TipoLiquidacion001 liquidacion = new LiquidacionICRL.TipoLiquidacion001(); if (row.RowType == DataControlRowType.DataRow) { string fechaRecepcion = row.Cells[5].Text; //string fechaOrden = row.Cells[5].Text; DateTime fechaLiquidacion = DateTime.Now; Label lblFechaLiquidacion = row.FindControl("lblFechaLiquidacion") as Label; bool esLiquidada = ((CheckBox)row.Cells[7].FindControl("cbxLiquidacion")).Checked; liquidacion.numero_orden = row.Cells[0].Text; liquidacion.proveedor = row.Cells[1].Text; //liquidacion.item_descripcion = row.Cells[2].Text; liquidacion.item_descripcion = ((Label)row.Cells[2].FindControl("lblDescripcion")).Text; liquidacion.preciobs = Convert.ToDouble(((Label)row.Cells[3].FindControl("lblCotizacionBs")).Text); liquidacion.precious = Convert.ToDouble(((Label)row.Cells[4].FindControl("lblCotizacionUs")).Text); if (!string.IsNullOrEmpty(fechaRecepcion) && fechaRecepcion != " ") { liquidacion.fecha_recepcion = DateTime.ParseExact(fechaRecepcion, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); } liquidacion.inspeccion = ((CheckBox)row.Cells[6].FindControl("cbxInspeccion")).Checked; liquidacion.liquidacion = esLiquidada; liquidacion.num_factura = ((DropDownList)row.Cells[8].FindControl("ddlFacturasLiquidadas")).SelectedItem.Value; //liquidacion.fecha_liquidacion = esLiquidada ? Convert.ToDateTime(fechaLiquidacion) : new DateTime(2000, 1, 1); liquidacion.id_estado = Convert.ToInt16(((Label)row.Cells[9].FindControl("id_estado")).Text); int.TryParse(Request.QueryString["idflujo"], out IdFlujo); liquidacion.id_flujo = IdFlujo; liquidacion.id_cotizacion = Convert.ToInt32(((Label)row.Cells[9].FindControl("id_cotizacion")).Text); liquidacion.tipo_origen = Convert.ToInt16(((Label)row.Cells[9].FindControl("tipo_origen")).Text); liquidacion.id_item = Convert.ToInt64(((Label)row.Cells[9].FindControl("id_item")).Text); liquidacion.id_tipo_item = Convert.ToInt16(((Label)row.Cells[9].FindControl("id_tipo_item")).Text); liquidacion.fecha_orden = Convert.ToDateTime(((Label)row.Cells[9].FindControl("fecha_orden")).Text); DateTime fecha; if (DateTime.TryParseExact(lblFechaLiquidacion.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out fecha)) { liquidacion.fecha_liquidacion = esLiquidada ? fecha : new DateTime(2000, 1, 1); } else { liquidacion.fecha_liquidacion = esLiquidada ? fechaLiquidacion : new DateTime(2000, 1, 1); } #region Generacion reporte liquidacion if (liquidacion.liquidacion) { ordenesLiquidadas.Add(liquidacion); } #endregion #region Guardado en BD operacionExitosa = LiquidacionICRL.ModificarLiquidacion001(liquidacion); if (!operacionExitosa) { break; } #endregion } } if (operacionExitosa) { RecuperarDatosOrdenes(); LlenarMenuFacturas(); GenerarDatosLiquidacion(ordenesLiquidadas); } else { btnGuardarLiquidacion.Enabled = false; LabelMensaje.Visible = true; LabelMensaje.Text = "Error al guardar generar la liquidación!"; } }