public void CargarOC(OrdenCompra oc)
 {
     factura.OrdenCompra = oc;
     factura.Proveedor = oc.Proveedor;
     factura.Moneda = oc.Moneda;
     factura.Fecha = DateTime.Now.Date;
     //se crean las lineas de la factura
     FacturaProveedorLinea factLinea = null;
     foreach (OrdenCompraLinea artxp in oc.OrdenCompraOrdenCompraLineafk) {
         factLinea = new FacturaProveedorLinea();
         factLinea.Cantidad = artxp.Cantidad;
         factLinea.PrecioUnitario = artxp.PrecioUnitario;
         factLinea.ArticuloXProveedor = artxp.ArticuloXProveedor;
         factLinea.SubTotal = artxp.SubTotal;
         factLinea.Factura = factura;
         factLineas.Add(factLinea);
     }
     //se convierten al tipo de colleccion Iset
     foreach (FacturaProveedorLinea linea in factLineas)
     {
         factura.FacturaProveedorFacturaProveedorLineafk.Add(linea);
     }
 }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (factura.Proveedor != null)
            {
                frmBusquedaArticulo busqArticulo = new frmBusquedaArticulo(frmBusquedaArticulo.IND_CONSULTA_EXTERNA, factura.Proveedor);
                busqArticulo.setEstado("Activo");
                busqArticulo.ShowDialog(this);
                Articulo articulo = busqArticulo.ArticuloSeleccionado;

                if (articulo != null)
                {
                    FacturaProveedorLinea linea = new FacturaProveedorLinea();
                    linea.ArticuloXProveedor = new ArticuloXProveedorBL().Find(articulo, factura.Proveedor);
                    if (linea.ArticuloXProveedor == null)
                    {
                        Utils.Utils.Error(null, "El proveedor no ofrece dicho artículo");
                        return;
                    }

                    linea.Factura = factura;
                    linea.ArticuloXProveedor.Articulo = articulo;
                    linea.ArticuloXProveedor.Proveedor = factura.Proveedor;
                    linea.Cantidad = 0;

                    string precioUnitarioCompra = String.Format("{0:0.00}", linea.ArticuloXProveedor.Costo.ToString());
                    linea.PrecioUnitario = (float) Convert.ToDouble(precioUnitarioCompra);

                    factLineas.Add(linea);

                    String[] datos = { articulo.CodigoArticulo, articulo.Titulo, "0", precioUnitarioCompra, "0", "0" };
                    dgvDetalleFactura.Rows.Add(datos);
                }
            }
            else {
                Utils.Utils.Mensaje("Debe seleccionar primero un proveedor", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#3
0
        public void SaveOrUpdate(FacturaProveedorLinea facturaLinea)
        {
            ISession hisession = null;
            try
            {
                hisession = NHibernateHelper.GetCurrentSession();
                hisession.BeginTransaction();
                if (facturaLinea.Id == 0)
                {
                    hisession.Save(facturaLinea);
                }
                else
                {
                    hisession.Update(facturaLinea);
                }
                hisession.Transaction.Commit();
                hisession.Close();
            }
            catch (Exception ex)
            {
                if (hisession != null)
                {
                    if (hisession.IsOpen)
                    {
                        hisession.Close();

                    }
                }
                if (log.IsErrorEnabled)
                {
                    log.Error(ex.Message);
                }

            }
        }