private void CalcularTotales() { Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID]; List <FacturaDet> lista = this.ListaProductosFacturaEspecial; double importeTotal = 0; //if ( Convert.ToDouble((Request.QueryString["Descuento1"]).ToString()) ) double porcDescuento1 = (Request.QueryString["Descuento1"]) == null ? 0 : Convert.ToDouble((Request.QueryString["Descuento1"]).ToString()); double porcDescuento2 = (Request.QueryString["Descuento2"]) == null ? 0 : Convert.ToDouble((Request.QueryString["Descuento2"]).ToString()); for (int i = 0; i < lista.Count; i++) { FacturaDet rem = lista[i]; importeTotal += rem.Fac_Importe; } CN_CatCentroDistribucion cn_cd = new CN_CatCentroDistribucion(); double iva = 0; cn_cd.ConsultarIva(sesion.Id_Emp, sesion.Id_Cd_Ver, ref iva, sesion.Emp_Cnx); txtImporte.Text = importeTotal.ToString(); importeTotal = porcDescuento1 > 0 ? (importeTotal - (importeTotal * (porcDescuento1 / 100))) : importeTotal; importeTotal = porcDescuento2 > 0 ? (importeTotal - (importeTotal * (porcDescuento2 / 100))) : importeTotal; txtSubTotal.Text = importeTotal.ToString(); txtIVA.Text = HD_IVARemision.Value.Trim() != string.Empty ? (importeTotal * iva / 100).ToString() : "0"; txtTotal.Text = (Convert.ToSingle(txtSubTotal.Text) + Convert.ToSingle(txtIVA.Text)).ToString(); Session["FacEspecialGuardada" + Session.SessionID] = 2; }
protected void ListaProductosFacturaEspecial_AgregarProducto(FacturaDet remision_prod) { try { List <FacturaDet> lista = this.ListaProductosFacturaEspecial; lista.Add(remision_prod); this.ListaProductosFacturaEspecial = lista; this.CalcularTotales(); } catch (Exception ex) { throw ex; } }
protected void ListaProductosFacturaEspecial_ModificarProducto(FacturaDet remision_prod, int index) { try { List <FacturaDet> lista = this.ListaProductosFacturaEspecial; //buscar producto de factura en la lista FacturaDet remision = lista[index]; if (remision.Id_Prd == remision_prod.Id_Prd) { lista[index] = remision_prod; } this.ListaProductosFacturaEspecial = lista; this.CalcularTotales(); } catch (Exception ex) { throw ex; } }
protected void rgFacturaEspecialDet_UpdateCommand(object sender, GridCommandEventArgs e) { FacturaDet FacturaDet = new FacturaDet(); try { GridEditableItem insertedItem = (GridEditableItem)e.Item; Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID]; FacturaDet.Id_Emp = sesion.Id_Emp; FacturaDet.Id_Cd = sesion.Id_Cd_Ver; FacturaDet.Id_Fac = 0; //se debe volver asignar cuando se guarda la orden de compra, cuando actualiza queda igual FacturaDet.Id_FacDet = 0; FacturaDet.Id_CteExt = Convert.ToInt32(this.HD_Cliente.Value); //cliente de datos generales de la factura FacturaDet.Id_Prd = Convert.ToInt32((insertedItem["Id_Prd"].FindControl("cmbProducto") as RadComboBox).SelectedValue); FacturaDet.Fac_Cant = (insertedItem["Fac_Cant"].FindControl("txtRem_Cantidad") as RadNumericTextBox).Value.HasValue ? Convert.ToInt32((insertedItem["Fac_Cant"].FindControl("txtRem_Cantidad") as RadNumericTextBox).Value.Value) : 0; FacturaDet.Clp_Release = (insertedItem["Clp_Release"].FindControl("txtClp_ReleaseEdit") as RadTextBox).Text; double precioPartida = (insertedItem["Fac_Precio"].FindControl("txtRem_Precio") as RadNumericTextBox).Value.HasValue ? Convert.ToDouble((insertedItem["Fac_Precio"].FindControl("txtRem_Precio") as RadNumericTextBox).Value.Value) : 0; (insertedItem["Fac_Importe"].FindControl("lblRem_ImporteEdit") as Label).Text = FacturaDet.Fac_Importe.ToString(); FacturaDet.Fac_Precio = precioPartida; //datos del producto de la orden de compra FacturaDet.Producto = new Producto(); FacturaDet.Producto.Id_Prd = Convert.ToInt32((insertedItem["Id_Prd"].FindControl("cmbProducto") as RadComboBox).SelectedValue); FacturaDet.Producto.Id_Emp = sesion.Id_Emp; FacturaDet.Producto.Id_Cd = sesion.Id_Cd_Ver; FacturaDet.Producto.Id_PrdEsp = (insertedItem.FindControl("txtId_PrdEsp") as RadTextBox).Text; FacturaDet.Producto.Prd_Descripcion = (insertedItem["Id_Prd"].FindControl("cmbProducto") as RadComboBox).Text; FacturaDet.Producto.Prd_DescripcionEspecial = (insertedItem["Prd_Descripcion"].FindControl("txtPrd_Descripcion") as RadTextBox).Text; FacturaDet.Producto.Prd_Presentacion = (insertedItem["Prd_Presentacion"].FindControl("txtPrd_Presentacion") as RadTextBox).Text; FacturaDet.Producto.Prd_UniNe = (insertedItem["Prd_UniNe"].FindControl("txtPrd_UniNe") as RadTextBox).Text; //agregar producto de orden de compra a la lista this.ListaProductosFacturaEspecial_ModificarProducto(FacturaDet, e.Item.ItemIndex); } catch (Exception ex) { string mensaje = string.Concat(ex.Message, "rgFacturaEspecial_insert_error"); this.DisplayMensajeAlerta(mensaje); } }
private void toolStripGenerar_Click(object sender, EventArgs e) { try { if (this.txtNumeroCliente.Text == "") { MessageBox.Show("Ingrese Cliente.", "Modulo de Facturacion", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.txtNumSRI.Text == "") { MessageBox.Show("Ingrese Numero SRI.", "Modulo de Facturacion", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.txtNumeroCotizacion.Text == "") { MessageBox.Show("Ingrese Cotizacion.", "Modulo de Facturacion", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (cbxFormaPago.SelectedValue == "") { MessageBox.Show("Seleccione Forma de Pago.", "Modulo de Facturacion", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.tbldetalle.Rows.Count == 0) { MessageBox.Show("Favor ingrese un articulo para su factura.", "Modulo de Facturacion", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Factura obj = new Factura(); obj.IdNumeroFactura = Int32.Parse(txtNumeroFactura.Text); // obj.cabecera_comprobante = Int32.Parse(txtNumSRI.Text); obj.IdNumeroCotizacion = Int32.Parse(txtNumeroCotizacion.Text); obj.IdPromocion = Int32.Parse(txtNumeroPromocion.Text); obj.IdFormaPago = Int32.Parse(cbxFormaPago.SelectedValue.ToString()); obj.IdNumeroCliente = Int32.Parse(txtNumeroCliente.Text); obj.Fecha = this.dtpFecha.Value; obj.ValorEntrada = Decimal.Parse(txtValorEntrada.Text); obj.NumeroCuotaMensual = Int32.Parse(txtNumeroCuotaMensual.Text); obj.Subtotal = txtsubtotal.Value; obj.Iva = txtiva.Value; obj.Ice = txtice.Value; obj.Descuento = txtdescuento.Value; obj.TotalPagar = txtTotalPagar.Value; obj.IdEmpresa = Seguridad.empresa; obj.idUsuario = Seguridad.usuario; obj.idEstado = Int32.Parse(cmbestado.SelectedValue.ToString()); da.AddToFactura(obj); int respuesta = da.SaveChanges(); if (respuesta > 0) { int i = 0; while (i < tbldetalle.Rows.Count) { FacturaDet objdet = new FacturaDet(); objdet.IdEmpresa = Seguridad.empresa; objdet.idUsuario = Seguridad.usuario; objdet.idEstado = Int32.Parse(cmbestado.SelectedValue.ToString()); objdet.Linea = i + 1; objdet.IdNumeroFactura = Int32.Parse(txtNumeroFactura.Text); objdet.IdArticulo = Int32.Parse(tbldetalle.Rows[i][0].ToString()); objdet.CuotaMensual = Decimal.Parse(tbldetalle.Rows[i][2].ToString()); objdet.FechaPago = DateTime.Parse(tbldetalle.Rows[i][3].ToString()); objdet.FechaMaximaPago = DateTime.Parse(tbldetalle.Rows[i][4].ToString()); objdet.precio = Decimal.Parse(tbldetalle.Rows[i][5].ToString()); objdet.cantidad = Int32.Parse(tbldetalle.Rows[i][6].ToString()); da.AddToFacturaDet(objdet); da.SaveChanges(); i++; } //guardar cuentas por cobrar Int32 maxUnitsInStock = 0; try { maxUnitsInStock = (from prod in da.Factura select prod.IdNumeroFactura).Max() + 1; ; } catch (Exception ex) { maxUnitsInStock = 1; } CuentaxCobrar objcxc = new CuentaxCobrar(); objcxc.idCuentaxCobrar = Int32.Parse(maxUnitsInStock.ToString()); //objcxc.numero_comprobante = objcxc.idTransaccion = objcxc.idFactura = Int32.Parse(this.txtNumeroFactura.Text); //objcxc.idCabeceraComprobante = objcxc.TotalCuotas = Int32.Parse(txtNumeroCuotaMensual.Text); objcxc.porcentaje_interes = Decimal.Parse(this.txtTasaFija.Text); objcxc.Modulo = 1; objcxc.idEmpresa = Seguridad.empresa; objcxc.idUsuario = Seguridad.usuario; objcxc.idEstado = Int32.Parse(cmbestado.SelectedValue.ToString()); da.AddToCuentaxCobrar(objcxc); respuesta = da.SaveChanges(); if (respuesta > 0) { i = 0; while (i < tblcutoas.Rows.Count) { CuentaxCobrarDet objdetcxc = new CuentaxCobrarDet(); objdetcxc.idCuentaxCobrar = objcxc.idCuentaxCobrar; objdetcxc.idEmpresa = Seguridad.empresa; objdetcxc.idUsuario = Seguridad.usuario; objdetcxc.idEstado = Int32.Parse(cmbestado.SelectedValue.ToString()); objdetcxc.Numero = i + 1; objdetcxc.numero_cuota = i + 1; objdetcxc.valor_cuota = Decimal.Parse(tblcutoas.Rows[i][0].ToString()); objdetcxc.valor_interes = Decimal.Parse(tblcutoas.Rows[i][1].ToString()); objdetcxc.valor_mora = 0; objdetcxc.fecha_cobro = DateTime.Parse(tblcutoas.Rows[i][2].ToString()); objdetcxc.fecha_vencimiento = DateTime.Parse(tblcutoas.Rows[i][3].ToString()); objdetcxc.FechaModificacion = DateTime.Parse(DateAndTime.Now.ToShortDateString()); da.AddToCuentaxCobrarDet(objdetcxc); da.SaveChanges(); i++; } } MessageBox.Show("Registro Ingresado con exito.", "Modulo de Facturacion", MessageBoxButtons.OK, MessageBoxIcon.Information); //cargarpromociones(); ImprimirReporte(); limpiar(); } } catch (Exception ex) { MessageBox.Show("Ingrese Correctamente los valores. " + ex.Message, "Modulo de Facturacion", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void Inicializar() { try { if (!Convert.ToBoolean(Request.QueryString["Modificar"])) { RadToolBar1.Items[1].Visible = false; } Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID]; this.HD_Cliente.Value = Request.QueryString["Id_Cte"].ToString(); this.HD_Moneda.Value = Request.QueryString["Id_Mon"].ToString(); this.HD_ImporteTotal.Value = Convert.ToDouble(Request.QueryString["Fac_ImporteTotal"]).ToString(); this.HD_IVARemision.Value = Request.QueryString["IVAfacturacion"].ToString(); this.HdId_FacSerie.Value = Request.QueryString["Id_FacSerie"].ToString(); //Desc1 = Convert.ToDouble((Request.QueryString["Descuento1"]).ToString()); //Desc2 = Convert.ToDouble((Request.QueryString["Descuento2"]).ToString()); if (Session["FacEspecialGuardada" + Session.SessionID] != null) { if (Session["FacEspecialGuardada" + Session.SessionID].ToString() != "1") { ListaProductosFacturaEspecial = new List <FacturaDet>(); } } if (ListaProductosFacturaEspecial != null && ListaProductosFacturaEspecial.Count > 0) { if (ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial == null) { ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial = ""; } ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial = (ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)).Length > 0 ? (ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries))[0] : ""; } else { ListaProductosFacturaEspecial = new List <FacturaDet>(); string folio = Request.QueryString["Folio"].ToString(); Factura remision = new Factura(); remision.Id_Emp = sesion.Id_Emp; remision.Id_Cd = sesion.Id_Cd_Ver; remision.Id_Fac = !string.IsNullOrEmpty(folio) ? Convert.ToInt32(folio) : 0; List <FacturaDet> listaProdFacturaEspecialFinal = new List <FacturaDet>(); if (!string.IsNullOrEmpty(folio)) { new CN_CapFactura().ConsultaFacturaEspecialDetalle(ref listaProdFacturaEspecialFinal , sesion.Emp_Cnx , sesion.Id_Emp , sesion.Id_Cd_Ver , Convert.ToInt32(folio) , HdId_FacSerie.Value.Trim() , Convert.ToInt32(this.HD_Cliente.Value)); } if (listaProdFacturaEspecialFinal.Count != 0) { ListaProductosFacturaEspecial = listaProdFacturaEspecialFinal; } else { //// ------------------------------------------------------------------------------------------- //// obtener claves de productos de Factura original //// ------------------------------------------------------------------------------------------- string clavesProducto = string.Empty; foreach (DataRow dr in dt_detalles.Rows) { clavesProducto = clavesProducto + dr["Id_Prd"] + "|"; } // ------------------------------------------------------------------------------------------- // consulta productos de facturacion especial en el catalogo de Cliente-Producto en base a los productos de la Remision original // ------------------------------------------------------------------------------------------- List <FacturaDet> listaProdFacturaEspecial = new List <FacturaDet>(); if (!string.IsNullOrEmpty(this.HD_Cliente.Value)) { new CN_CatClienteProd().ConsultaClienteProd_FacturaEspecial(ref listaProdFacturaEspecial , sesion.Emp_Cnx , sesion.Id_Emp , sesion.Id_Cd_Ver , Convert.ToInt32(this.HD_Cliente.Value) , clavesProducto); } // ------------------------------------------------------------------------------------------- // Crear partidas adicionales de remision si es que la descripción viene con separadores "|" // ------------------------------------------------------------------------------------------- for (int i = 0; i < listaProdFacturaEspecial.Count; i++) { FacturaDet FacturaDet = listaProdFacturaEspecial[i]; FacturaDet.Id_CteExt = Convert.ToInt32(this.HD_Cliente.Value);//actualiza el cliente de la partida que es el cliente de la fact. original string[] descripcion = FacturaDet.Producto.Prd_DescripcionEspecial.Split(new char[] { '|' }); for (int j = 0; j < descripcion.Length; j++) { FacturaDet remisionCopia = new FacturaDet(); remisionCopia.Producto = new Producto(); remisionCopia.Id_CteExt = Convert.ToInt32(this.HD_Cliente.Value); remisionCopia.Id_Prd = FacturaDet.Id_Prd; remisionCopia.Producto.Id_PrdEsp = FacturaDet.Producto.Id_PrdEsp.ToString(); remisionCopia.Producto.Id_Prd = FacturaDet.Producto.Id_Prd; remisionCopia.Producto.Prd_Descripcion = FacturaDet.Producto.Prd_Descripcion; remisionCopia.Producto.Prd_Presentacion = FacturaDet.Producto.Prd_Presentacion; remisionCopia.Producto.Prd_UniNe = FacturaDet.Producto.Prd_UniNe; remisionCopia.Producto.Prd_InvFinal = FacturaDet.Producto.Prd_InvFinal; remisionCopia.Producto.Prd_DescripcionEspecial = descripcion[j]; try { remisionCopia.Fac_Precio = Convert.ToDouble(dt_detalles.Select("Id_Prd=" + FacturaDet.Id_Prd)[0]["Fac_Precio"]); } catch (Exception) { } remisionCopia.Id_Emp = sesion.Id_Emp; remisionCopia.Id_Cd = sesion.Id_Cd_Ver; if (j == 0) { try { remisionCopia.Fac_Cant = Convert.ToInt32(dt_detalles.Select("Id_Prd=" + FacturaDet.Id_Prd)[0]["Fac_Cant"]); } catch { remisionCopia.Fac_Cant = 0; } } else { remisionCopia.Fac_Cant = 0; } ListaProductosFacturaEspecial.Add(remisionCopia); } } } } double ancho = 0; foreach (GridColumn gc in rgFacturaEspecialDet.Columns) { if (gc.Display) { ancho = ancho + gc.HeaderStyle.Width.Value; } } rgFacturaEspecialDet.Width = Unit.Pixel(Convert.ToInt32(ancho)); rgFacturaEspecialDet.MasterTableView.Width = Unit.Pixel(Convert.ToInt32(ancho)); this.CalcularTotales(); rgFacturaEspecialDet.Rebind(); } catch (Exception ex) { throw ex; } }