Example #1
0
        private void carga_facturas()
        {
            cbFacturas.DataSource = null;
            DataTable table = new DataTable();
            DataRow   row;

            table.Columns.Add("Text", typeof(string));
            table.Columns.Add("Value", typeof(string));
            row          = table.NewRow();
            row["Text"]  = "";
            row["Value"] = "";
            table.Rows.Add(row);
            Models.Compras compras = new Models.Compras();
            using (compras)
            {
                List <Models.Compras> compra = compras.getCompra_sin_pagar(txtidproveedor.Text);
                foreach (Models.Compras item in compra)
                {
                    cbFacturas.Items.Add(item.Folio_doc);
                    row          = table.NewRow();
                    row["Text"]  = item.Folio_doc;
                    row["Value"] = item.Id.ToString();
                    table.Rows.Add(row);
                }
            }


            cbFacturas.BindingContext = new BindingContext();
            cbFacturas.DataSource     = table;
            cbFacturas.DisplayMember  = "Text";
            cbFacturas.ValueMember    = "Value";
            cbFacturas.BindingContext = new BindingContext();
        }
Example #2
0
 public void carga()
 {
     dtCompras.Rows.Clear();
     Models.Compras funcompra = new Models.Compras();
     using (funcompra)
     {
         List <Models.Compras> result = funcompra.GetCompras();
         foreach (Models.Compras item in result)
         {
             dtCompras.Rows.Add(item.Id, item.Proveedor, item.Fecha, item.Total);
         }
     }
 }
 public void carga()
 {
     dtPagos.Rows.Clear();
     Models.Pagos_compras pagos = new Models.Pagos_compras();
     using (pagos)
     {
         List <Models.Pagos_compras> pago = pagos.getcompras();
         Models.Compras compras           = new Models.Compras();
         foreach (Models.Pagos_compras item in pago)
         {
             List <Models.Compras> compra = compras.getCompraByid(item.Id_compra);
             dtPagos.Rows.Add(item.Id, item.Fecha, compra[0].Proveedor, item.Monto);
         }
     }
 }
Example #4
0
        private void Alertas_Load(object sender, EventArgs e)
        {
            DateTime today = DateTime.Today;
            string   dia11 = today.ToString("dddd", new CultureInfo("es-ES"));

            Models.Providers proveedores = new Models.Providers();
            Models.Compras   compras     = new Models.Compras();
            using (proveedores)
            {
                List <Models.Providers> proveedor = proveedores.getProvidersbypago(dia11);
                using (compras)
                {
                    //List<Models.Compras> compra = compras.GetComprasporvencer(today.ToString("yyyy-MM-dd"),proveedor[0].Id);
                }
            }
        }
Example #5
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (cbFacturas.SelectedValue == "")
            {
                MessageBox.Show("Seleccione factura a agregar", "Pagos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                Models.Compras compras = new Models.Compras();
                using (compras)
                {
                    List <Models.Compras> compra = compras.getCompraByid(Convert.ToInt16(cbFacturas.SelectedValue));
                    dtpagos.Rows.Add(compra[0].Id, compra[0].Folio_doc, compra[0].Fecha_doc, compra[0].Total);
                }

                calcula();
            }
        }
Example #6
0
        private void button2_Click(object sender, EventArgs e)
        {
            borrar_error();
            if (validar_campo())
            {
                Pagos_compras pagos = new Pagos_compras();
                using (pagos)
                {
                    pagos.Id_compra  = Convert.ToInt16(lbFolio.Text);
                    pagos.Fpago      = Convert.ToInt16(txtCodigo.Text);
                    pagos.Folio_pago = txtFolio.Text;
                    pagos.Fecha_pago = dtfecha.Text + " 00:00:00";
                    pagos.Monto      = Convert.ToDouble(lbTotal.Text);
                    pagos.create_pago();
                    using (pagos)
                    {
                        List <Pagos_compras> lista = pagos.getcomprabyfolio(lbFolio.Text);

                        Det_pagos det_pagos = new Det_pagos();
                        det_pagos.Id_pago = Convert.ToInt16(lbFolio.Text);

                        Models.Compras compras = new Models.Compras();

                        foreach (DataGridViewRow row in dtpagos.Rows)
                        {
                            using (det_pagos)
                            {
                                det_pagos.Id_compra = Convert.ToInt16(row.Cells["id"].Value.ToString());
                                det_pagos.createPago();
                            }

                            using (compras)
                            {
                                compras.Id = Convert.ToInt16(row.Cells["id"].Value.ToString());
                                compras.pagar();
                            }
                        }
                    }
                }

                this.Close();
            }
        }
Example #7
0
        public ActionResult Comprar(int id_canasta, int id_producto_por_agricultor, int cantidad)
        {
            try
            {
                Models.Compras compra = new Models.Compras();
                compra.Com_Cantidad   = cantidad;
                compra.Com_Id_Canasta = id_canasta;
                compra.Com_Id_Producto_Por_Agricultor = id_producto_por_agricultor;

                var compraInsertar = Mapper.Map <DATA.Compras>(compra);
                com.InsertarCompras(compraInsertar);
            }
            catch (Exception e)
            {
                return(Json("Error", JsonRequestBehavior.AllowGet));
            }

            return(Json("exito", JsonRequestBehavior.AllowGet));
        }
Example #8
0
        private void button2_Click(object sender, EventArgs e)
        {
            int    dias          = 0;
            string fecha_credito = "0000-00-00 00:00:00";
            string pagado        = "SI";

            if (chkContado.Checked != true)
            {
                dias          = Convert.ToInt16(txtdias.Text);
                fecha_credito = dtVencimiento.Text + " 00:00:00";
                pagado        = "NO";
            }
            Models.Compras compra = new Models.Compras(
                0,
                txtFolio.Text,
                dtFecha.Text + " 00:00:00",
                dtFechaDoc.Text + " 00:00:00",
                txtNumero.Text,
                "A",
                dias,
                fecha_credito,
                pagado,
                Convert.ToDouble(txtSubtotal.Text),
                Convert.ToDouble(txtiva.Text),
                Convert.ToDouble(txttotal.Text),
                Convert.ToDouble(txtdescuento.Text)
                );
            using (compra)
            {
                compra.crateCompra();
                List <Models.Compras> resultado = compra.GetlastCompras(dtFecha.Text + " 00:00:00", dtFechaDoc.Text + " 00:00:00", txtNumero.Text, Convert.ToDouble(txttotal.Text));
                Purchases             detalles  = new Purchases();
                detalles.Id        = 0;
                detalles.Id_compra = resultado[0].Id;
                Kardex      kardex   = new Kardex();
                Product     producto = new Product();
                Afecta_inv  afecta   = new Afecta_inv();
                Caducidades Caducida = new Caducidades();
                Caducida.Id        = 0;
                Caducida.Id_compra = resultado[0].Id;
                double nuevo = 0;
                foreach (DataGridViewRow row in dtProductos.Rows)
                {
                    using (producto)
                    {
                        List <Product> prod = producto.getProductById(Convert.ToInt16(row.Cells["id_producto"].Value.ToString()));

                        nuevo = Convert.ToInt16(row.Cells["cantidad"].Value.ToString());
                        while (prod[0].Parent != "0")
                        {
                            nuevo = nuevo * Convert.ToInt16(prod[0].C_unidad);
                            prod  = producto.getProductById(Convert.ToInt16(prod[0].Parent));
                        }


                        detalles.Cantidad    = Convert.ToDouble(row.Cells["cantidad"].Value.ToString());
                        detalles.Id_producto = Convert.ToInt16(row.Cells["id_producto"].Value.ToString());
                        detalles.P_u         = Convert.ToDouble(row.Cells["p_u"].Value.ToString());
                        detalles.Total       = Convert.ToDouble(row.Cells["total"].Value.ToString());
                        using (detalles)
                        {
                            detalles.createPurchases();
                            Caducida.Id_producto = prod[0].Id;
                            Caducida.Caducidad   = row.Cells["caducidad"].Value.ToString();
                            Caducida.Lote        = row.Cells["lote"].Value.ToString();
                            Caducida.Cantidad    = nuevo;
                            using (caducidad)
                            {
                                Caducida.createCaducidad();
                            }
                            kardex.Fecha        = Convert.ToDateTime(dtFecha.Text).ToString();
                            kardex.Id_producto  = prod[0].Id;
                            kardex.Tipo         = "C";
                            kardex.Cantidad     = nuevo;
                            kardex.Antes        = prod[0].Existencia;
                            kardex.Id           = 0;
                            kardex.Id_documento = Convert.ToInt16(resultado[0].Id);
                            using (kardex)
                            {
                                kardex.CreateKardex();
                                List <Kardex> numeracion = kardex.getidKardex(prod[0].Id, Convert.ToInt16(resultado[0].Id), "C");
                                using (afecta)
                                {
                                    afecta.Agrega(numeracion[0].Id);
                                }
                            }
                        }
                    }
                }
            }



            this.Close();
        }
Example #9
0
        private void Form_compras_Load(object sender, EventArgs e)
        {
            txtCodigo.AutoCompleteCustomSource = cargadatos();
            txtCodigo.AutoCompleteMode         = AutoCompleteMode.SuggestAppend;
            txtCodigo.AutoCompleteSource       = AutoCompleteSource.CustomSource;

            txtDescripcion.AutoCompleteCustomSource = cargadatos2();
            txtDescripcion.AutoCompleteMode         = AutoCompleteMode.SuggestAppend;
            txtDescripcion.AutoCompleteSource       = AutoCompleteSource.CustomSource;

            dtFecha.Format             = DateTimePickerFormat.Custom;
            dtFecha.CustomFormat       = "yyyy-MM-dd";
            dtFechaDoc.Format          = DateTimePickerFormat.Custom;
            dtFechaDoc.CustomFormat    = "yyyy-MM-dd";
            dtVencimiento.Format       = DateTimePickerFormat.Custom;
            dtVencimiento.CustomFormat = "yyyy-MM-dd";
            txtdescuento.Text          = "0";
            carga_proveedor();
            if (folio != "0")
            {
                Models.Compras compra = new Models.Compras();
                using (compra)
                {
                    List <Models.Compras> resultado = compra.getCompraByid(Convert.ToInt16(folio));
                    foreach (Models.Compras item in resultado)
                    {
                        cbProveedor.SelectedText = item.Proveedor;
                        txtFolio.Text            = item.Folio_doc;
                        dtFecha.Text             = item.Fecha;
                        dtFechaDoc.Text          = item.Fecha_doc;
                        txttotal.Text            = item.Total.ToString();
                        txtiva.Text       = item.Iva.ToString();
                        txtdescuento.Text = item.Descuento.ToString();
                        txtSubtotal.Text  = item.Subtotal.ToString();
                        if (item.Pagado == "SI")
                        {
                            chkContado.Checked = true;
                        }
                        else
                        {
                            chkContado.Checked = false;
                        }

                        if (chkContado.Checked == false)
                        {
                            txtdias.Text       = item.Dias.ToString();
                            dtVencimiento.Text = item.Fecha_credito;
                        }
                    }
                }
                Product     producto    = new Product();
                Purchases   detalle     = new Purchases();
                Caducidades caducidades = new Caducidades();
                string      master      = "0";
                int         id_prod     = 0;
                using (detalle)
                {
                    List <Purchases> resu = detalle.getPurchases(Convert.ToInt16(folio));
                    foreach (Purchases va in resu)
                    {
                        using (producto)
                        {
                            List <Product> prod = producto.getProductById(va.Id_producto);
                            master  = prod[0].Parent;
                            id_prod = prod[0].Id;
                            while (master != "0")
                            {
                                List <Product> encontrado = producto.getProductById(Convert.ToInt16(master));
                                master  = encontrado[0].Parent;
                                id_prod = encontrado[0].Id;
                            }
                            using (caducidades)
                            {
                                List <Caducidades> cadu = caducidades.GetCaducidadesbyCompra(Convert.ToInt16(folio), id_prod);
                                dtProductos.Rows.Add(va.Id_producto, va.Cantidad, prod[0].Code1, prod[0].Description, va.P_u, va.Total, cadu[0].Lote, cadu[0].Caducidad);
                            }
                        }
                    }
                }



                txtFolio.Enabled         = false;
                button1.Enabled          = false;
                toolStripButton2.Enabled = false;
                toolStripButton1.Enabled = false;
                button4.Enabled          = false;
                button2.Enabled          = false;
                txtCodigo.Enabled        = false;
                txtDescripcion.Enabled   = false;
                txtdescuento.Enabled     = false;
                txtCantidad.Enabled      = false;
                txtpu.Enabled            = false;
                chkContado.Enabled       = false;
                txtNumero.Enabled        = false;
                cbProveedor.Enabled      = false;
                dtFechaDoc.Enabled       = false;
                dtProductos.Columns["cantidad"].ReadOnly = true;
                txtdescuento.Enabled = false;
            }
        }
Example #10
0
        public bool Insert(Models.Compras compra)
        {
            try
            {
                var sql = string.Format("INSERT INTO tbcompras ( modelo, serie, numero, dtemissao, dtentrega, codfornecedor, observacao, dtcadastro, situacao, codcondicao, vlfrete, vlseguro, vldespesas ) VALUES ('{0}', '{1}', {2}, {3}, {4}, {5}, '{6}', {7}, '{8}', {9}, {10}, {11}, {12} ); ",
                                        compra.modelo,
                                        compra.serie,
                                        compra.nrNota,
                                        compra.dtEmissao != null ? this.FormatDate(compra.dtEmissao.Value) : null,
                                        compra.dtEntrega != null ? this.FormatDate(compra.dtEntrega) : null,
                                        compra.Fornecedor.id,
                                        this.FormatString(compra.observacao),
                                        this.FormatDate(DateTime.Now),
                                        "N",
                                        compra.CondicaoPagamento.id,
                                        compra.vlFrete != null ? this.FormatDecimal(compra.vlFrete).ToString() : "null",
                                        compra.vlSeguro != null ? this.FormatDecimal(compra.vlSeguro).ToString() : "null",
                                        compra.vlDespesas != null ? this.FormatDecimal(compra.vlDespesas).ToString() : "null"
                                        );
                string sqlProduto       = "INSERT INTO tbprodutoscompra ( codproduto, unidade, qtproduto, vlcompra, txdesconto, vlvenda, modelo, serie, numero, codfornecedor) VALUES ( {0}, '{1}', {2}, {3}, {4}, {5}, '{6}', '{7}', {8}, {9})";
                string sqlParcela       = "INSERT INTO tbcontaspagar (codfornecedor, codforma, nrparcela, vlparcela, dtvencimento, situacao, modelo, serie, numero, juros, multa, desconto) VALUES ({0}, {1}, {2}, {3}, {4}, '{5}', '{6}', '{7}', {8}, {9}, {10}, {11})";
                string sqlUpdateProduto = "UPDATE tbprodutos set qtestoque += {0}, vlultcompra = {1} WHERE codproduto = {2}";
                using (con)
                {
                    OpenConnection();

                    SqlTransaction sqlTrans = con.BeginTransaction();
                    SqlCommand     command  = con.CreateCommand();
                    command.Transaction = sqlTrans;
                    try
                    {
                        command.CommandText = sql;
                        command.ExecuteNonQuery();
                        //var codCompra = Convert.ToInt32(command.ExecuteScalar());
                        foreach (var item in compra.ProdutosCompra)
                        {
                            var Item = string.Format(sqlProduto, item.codProduto, item.unidade, this.FormatDecimal(item.qtProduto), this.FormatDecimal(item.vlCompra), this.FormatDecimal(item.txDesconto), this.FormatDecimal(item.vlVenda), compra.modelo, compra.serie, compra.nrNota, compra.Fornecedor.id);
                            var test = Item;
                            command.CommandText = Item;
                            command.ExecuteNonQuery();

                            var upProd = string.Format(sqlUpdateProduto, this.FormatDecimal(item.qtProduto), this.FormatDecimal(item.vlCompra), item.codProduto);
                            command.CommandText = upProd;
                            command.ExecuteNonQuery();
                        }

                        foreach (var item in compra.ParcelasCompra)
                        {
                            var parcela = string.Format(sqlParcela, compra.Fornecedor.id, item.idFormaPagamento, item.nrParcela, this.FormatDecimal(item.vlParcela), this.FormatDate(item.dtVencimento), "P", compra.modelo, compra.serie, compra.nrNota, this.FormatDecimal(compra.CondicaoPagamento.txJuros), this.FormatDecimal(compra.CondicaoPagamento.multa), this.FormatDecimal(compra.CondicaoPagamento.desconto));
                            command.CommandText = parcela;
                            command.ExecuteNonQuery();
                        }
                        sqlTrans.Commit();
                    }
                    catch (Exception ex)
                    {
                        sqlTrans.Rollback();
                        throw new Exception(ex.Message);
                    }
                    finally
                    {
                        con.Close();
                    }
                }
                return(true);
            }
            catch (Exception error)
            {
                throw new Exception(error.Message);
            }
            finally
            {
                CloseConnection();
            }
        }
Example #11
0
        public Compras GetCompra(string filter, string modelo, string serie, int numero, int codFornecedor)
        {
            try
            {
                var model = new Models.Compras();
                OpenConnection();
                var sql          = this.Search(filter, modelo, serie, numero, codFornecedor);
                var sqlProdutos  = this.SearchProdutos(modelo, serie, numero, codFornecedor);
                var sqlParcelas  = this.SearchParcelas(modelo, serie, numero, codFornecedor);
                var listProdutos = new List <Compras.ProdutosVM>();
                var listParcelas = new List <Shared.ParcelasVM>();

                SqlQuery = new SqlCommand(sql + sqlProdutos + sqlParcelas, con);
                reader   = SqlQuery.ExecuteReader();
                while (reader.Read())
                {
                    model.situacao   = Sistema.Util.FormatFlag.Situacao(Convert.ToString(reader["Compra_Situacao"]));
                    model.Fornecedor = new Select.Fornecedores.Select
                    {
                        id   = Convert.ToInt32(reader["Fornecedor_ID"]),
                        text = Convert.ToString(reader["Fornecedor_Nome"])
                    };
                    model.modelo     = Convert.ToString(reader["Compra_Modelo"]);
                    model.serie      = Convert.ToString(reader["Compra_Serie"]);
                    model.nrNota     = Convert.ToInt32(reader["Compra_Numero"]);
                    model.dtEmissao  = Convert.ToDateTime(reader["Compra_DataEmissao"]);
                    model.dtEntrega  = Convert.ToDateTime(reader["Compra_DataEntrega"]);
                    model.dtCadastro = Convert.ToDateTime(reader["Compra_DataEntrada"]);
                    model.observacao = Convert.ToString(reader["Compra_Observacao"]);
                    model.vlFrete    = !string.IsNullOrEmpty(reader["Compra_Frete"].ToString()) ? Convert.ToDecimal(reader["Compra_Frete"]) : (decimal?)null;
                    model.vlSeguro   = !string.IsNullOrEmpty(reader["Compra_Seguro"].ToString()) ? Convert.ToDecimal(reader["Compra_Seguro"]) : (decimal?)null;
                    model.vlDespesas = !string.IsNullOrEmpty(reader["Compra_Despesas"].ToString()) ? Convert.ToDecimal(reader["Compra_Despesas"]) : (decimal?)null;

                    model.CondicaoPagamento = new Select.CondicaoPagamento.Select
                    {
                        id   = Convert.ToInt32(reader["CondicaoPagamento_ID"]),
                        text = Convert.ToString(reader["CondicaoPagamento_Nome"])
                    };
                }
                ;

                if (reader.NextResult())
                {
                    while (reader.Read())
                    {
                        var produto = new Compras.ProdutosVM
                        {
                            codProduto  = Convert.ToInt32(reader["ProdutoCompra_Produto_ID"]),
                            nomeProduto = Convert.ToString(reader["ProdutoCompra_Produto_Nome"]),
                            unidade     = Convert.ToString(reader["ProdutoCompra_Unidade"]),
                            qtProduto   = Convert.ToDecimal(reader["ProdutoCompra_QtProduto"]),
                            vlCompra    = Convert.ToDecimal(reader["ProdutoCompra_VlCompra"]),
                            txDesconto  = Convert.ToDecimal(reader["ProdutoCompra_TxDesconto"]),
                            vlVenda     = Convert.ToDecimal(reader["ProdutoCompra_VlVenda"]),
                        };
                        var txDesc  = (produto.vlCompra * produto.txDesconto) / 100;
                        var vlTotal = produto.vlCompra - txDesc;
                        produto.vlTotal = vlTotal;
                        listProdutos.Add(produto);
                    }
                }

                if (reader.NextResult())
                {
                    while (reader.Read())
                    {
                        var parcela = new Shared.ParcelasVM
                        {
                            idFormaPagamento = Convert.ToInt32(reader["FormaPagamento_ID"]),
                            nmFormaPagamento = Convert.ToString(reader["FormaPagamento_Nome"]),
                            nrParcela        = Convert.ToDouble(reader["ContaPagar_NrParcela"]),
                            vlParcela        = Convert.ToDecimal(reader["ContaPagar_VlParcela"]),
                            dtVencimento     = Convert.ToDateTime(reader["ContaPagar_DataVencimento"]),
                            situacao         = Util.FormatFlag.Situacao(Convert.ToString(reader["ContaPagar_Situacao"]))
                        };
                        listParcelas.Add(parcela);
                    }
                }
                model.ProdutosCompra = listProdutos;
                model.ParcelasCompra = listParcelas;
                return(model);
            }
            catch (Exception error)
            {
                throw new Exception(error.Message);
            }
            finally
            {
                CloseConnection();
            }
        }
Example #12
0
 public ActionResult CancelarCompra(string modelo, string serie, int numero, int codFornecedor, Models.Compras model)
 {
     try
     {
         daoCompra = new DAOCompras();
         daoCompra.CancelarCompra(modelo, serie, numero, codFornecedor);
         this.AddFlashMessage("Registro cancelado com sucesso!");
         return(RedirectToAction("Index"));
     }
     catch (Exception ex)
     {
         this.AddFlashMessage(ex.Message, FlashMessage.ERROR);
         model = daoCompra.GetCompra(null, modelo, serie, numero, codFornecedor);
         return(View(model));
     }
 }
Example #13
0
        private void button2_Click(object sender, EventArgs e)
        {
            bool valido = true;

            foreach (DataGridViewRow row in dtProductos.Rows)
            {
                if (row.DefaultCellStyle.BackColor.Name.ToString() == "Red")
                {
                    valido = false;
                }
            }
            if (valido == false)
            {
                Autenficiar auto = new Autenficiar();
                Autenficiar.origen = "Compras";
                auto.ShowDialog();
                Models.Log historial = new Models.Log();
                using (historial)
                {
                    foreach (DataGridViewRow row in dtProductos.Rows)
                    {
                        if (row.DefaultCellStyle.BackColor.Name.ToString() == "Red")
                        {
                            historial.Id_usuario  = Autorizo;
                            historial.Descripcion = "autorizo el  ingreso de la compra de " + row.Cells["descripcion"].Value.ToString() + " que llego mas caro ";
                            historial.createLog();
                        }
                    }
                }

                valido = true;
            }
            if (valido == true)
            {
                int    dias          = 0;
                string fecha_credito = "0000-00-00";
                string pagado        = "SI";
                if (chkContado.Checked != true)
                {
                    dias          = Convert.ToInt16(txtdias.Text);
                    fecha_credito = dtVencimiento.Text;
                    pagado        = "NO";
                }
                Models.Compras compra = new Models.Compras(
                    0,
                    txtFolio.Text,
                    dtFecha.Text,
                    dtFechaDoc.Text,
                    txtNumero.Text,
                    "A",
                    dias,
                    fecha_credito,
                    pagado,
                    Convert.ToDouble(txtSubtotal.Text),
                    Convert.ToDouble(txtiva.Text),
                    Convert.ToDouble(txttotal.Text),
                    Convert.ToDouble(txtdescuento.Text),
                    dtRecepcion.Text,
                    Autorizo
                    );
                using (compra)
                {
                    compra.crateCompra();

                    Models.Log historial = new Models.Log();
                    using (historial)
                    {
                        historial.Id_usuario  = Convert.ToInt32(Inicial.id_usario);
                        historial.Descripcion = "agrego la compra " + txtFolio.Text + "del proveedor " + cbProveedor.Text + " por $ " + txttotal.Text;
                        historial.createLog();
                    }


                    List <Models.Compras> resultado = compra.GetlastCompras(dtFecha.Text, dtFechaDoc.Text, txtNumero.Text, Convert.ToDouble(txttotal.Text));
                    Models.Purchases      detalles  = new Models.Purchases();
                    detalles.Id        = 0;
                    detalles.Id_compra = resultado[0].Id;
                    Models.Kardex      kardex   = new Models.Kardex();
                    Models.Product     producto = new Models.Product();
                    Models.Afecta_inv  afecta   = new Models.Afecta_inv();
                    Models.Caducidades Caducida = new Models.Caducidades();
                    Models.prov_prod   costos   = new Models.prov_prod();
                    Caducida.Id        = 0;
                    Caducida.Id_compra = resultado[0].Id;
                    double nuevo = 0;
                    foreach (DataGridViewRow row in dtProductos.Rows)
                    {
                        using (producto)
                        {
                            List <Models.Product> prod = producto.getProductById(Convert.ToInt16(row.Cells["id_producto"].Value.ToString()));

                            nuevo = Convert.ToDouble(row.Cells["cantidad"].Value.ToString());
                            while (prod[0].Parent != "0")
                            {
                                nuevo = nuevo * Convert.ToInt16(prod[0].C_unidad);
                                prod  = producto.getProductById(Convert.ToInt16(prod[0].Parent));
                            }
                            detalles.Cantidad    = Convert.ToDouble(row.Cells["cantidad"].Value.ToString());
                            detalles.Id_producto = Convert.ToInt32(row.Cells["id_producto"].Value.ToString());
                            detalles.P_u         = Convert.ToDouble(row.Cells["p_u"].Value.ToString());
                            detalles.Total       = Convert.ToDouble(row.Cells["total"].Value.ToString());
                            using (detalles)
                            {
                                using (costos)
                                {
                                    List <Models.prov_prod> cost = costos.get_costobyproveedorandprodu(Convert.ToInt32(row.Cells["id_producto"].Value.ToString()), Convert.ToInt32(txtNumero.Text));
                                    if (cost.Count > 0)
                                    {
                                        costos.Id_producto  = Convert.ToInt32(row.Cells["id_producto"].Value.ToString());
                                        costos.Id_proveedor = Convert.ToInt32(txtNumero.Text);
                                        costos.Cantidad     = cost[0].Cantidad;
                                        costos.Costo        = Convert.ToDouble(row.Cells["p_u"].Value.ToString());
                                        costos.update_from_compra();
                                    }
                                    else
                                    {
                                        costos.Id_producto  = Convert.ToInt32(row.Cells["id_producto"].Value.ToString());
                                        costos.Id_proveedor = Convert.ToInt32(txtNumero.Text);
                                        costos.Cantidad     = Convert.ToDouble(row.Cells["cantidad"].Value.ToString());
                                        costos.Costo        = Convert.ToDouble(row.Cells["p_u"].Value.ToString());
                                        costos.create();
                                    }
                                }
                                detalles.createPurchases();
                                if (row.Cells["lote"].Value.ToString() != "")
                                {
                                    Caducida.Id_producto = prod[0].Id;
                                    Caducida.Caducidad   = row.Cells["caducidad"].Value.ToString();
                                    Caducida.Lote        = row.Cells["lote"].Value.ToString();
                                    Caducida.Cantidad    = nuevo;
                                    using (caducidad)
                                    {
                                        Caducida.createCaducidad();
                                    }
                                }
                                kardex.Fecha        = Convert.ToDateTime(dtFecha.Text).ToString();
                                kardex.Id_producto  = prod[0].Id;
                                kardex.Tipo         = "C";
                                kardex.Cantidad     = nuevo;
                                kardex.Antes        = prod[0].Existencia;
                                kardex.Id           = 0;
                                kardex.Id_documento = Convert.ToInt16(resultado[0].Id);
                                using (kardex)
                                {
                                    kardex.CreateKardex();
                                    List <Models.Kardex> numeracion = kardex.getidKardex(prod[0].Id, Convert.ToInt16(resultado[0].Id), "C");
                                    using (afecta)
                                    {
                                        afecta.Agrega(numeracion[0].Id);
                                    }
                                }
                            }
                        }
                    }
                }


                foreach (DataGridViewRow row in dtDocumentos.Rows)
                {
                    Models.Ordenes_compra ordenes = new Models.Ordenes_compra();
                    using (ordenes)
                    {
                        ordenes.Id        = Convert.ToInt32(row.Cells["documento"].Value.ToString());
                        ordenes.Terminado = true;
                        ordenes.termina_orden();
                    }
                }
                this.Close();
            }
        }