private void PartidaNextId()//obtiene el siguiente id
        {
            oen_indiv PartidaId = new oen_indiv();

            partidaId = PartidaId.NextID();
        }
Exemple #2
0
        private void ajustarEntradasYsalidas(int ajuste)
        {
            if (AccesoInternet() == false)
            {
                MessageBox.Show("No hay internet, intente en un momento"); return;
            }
            int stockActual = productoSeleccionadoi.STOCK;

            if (stockActual != ajuste)
            {
                if (stockActual > ajuste)
                {
                    int       diferencia = stockActual - ajuste;
                    osa_gral  og         = new osa_gral();
                    osa_indiv oi         = new osa_indiv();
                    og.Id            = og.NextID();
                    og.ID_CLIENTE    = 0;
                    og.FECHA         = DateTime.Now.Date;
                    oi.Id            = oi.NextID();
                    oi.ID_OSAGRAL    = og.Id;
                    oi.ID_PRODUCTO2  = productoSeleccionadoi.Id;
                    oi.QTY2          = diferencia;
                    oi.precioAlmacen = productoSeleccionadoi.PrecioAlmacen;
                    oi.totalItem     = oi.precioAlmacen * oi.QTY2;
                    #region LOOP SALIDAS INVETNARIOCOSTOS
                    inventariocostos invCost = new inventariocostos(oi.ID_PRODUCTO2, "Salida");
                    if (invCost.Id > 0)
                    {
                        if (oi.QTY2 <= invCost.cantidad_actual)
                        {
                            invCost.cantidad_actual -= oi.QTY2;
                            invCost.Update("Id");
                        }
                        else
                        {
                            int Qty = oi.QTY2;
                            Qty -= invCost.cantidad_actual;
                            invCost.cantidad_actual = 0;
                            invCost.Update("Id");
                            while (Qty > 0)
                            {
                                inventariocostos invCost2 = new inventariocostos(oi.ID_PRODUCTO2, "Salida2");
                                if (invCost2.Id > 0)
                                {
                                    if (Qty <= invCost2.cantidad_actual)
                                    {
                                        invCost2.cantidad_actual -= Qty;
                                        invCost2.Update("Id");
                                        Qty = 0;
                                    }
                                    else
                                    {
                                        Qty -= invCost2.cantidad_actual;
                                        invCost2.cantidad_actual = 0;
                                        invCost2.Update("Id");
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("No hay entradas registradas para esta salida");
                                    Qty = 0;
                                }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Este producto no tiene Facturas de compra, Favor de ingresarlas antes de Sacar el Producto");
                    }
                    #endregion LOOP SALIDAS INVETNARIOCOSTOS
generalok:
                    og.Id = og.NextID();
                    og.Insert();
                    if (og.Error != "")
                    {
                        goto generalok;
                    }
individualok:
                    oi.Id         = oi.NextID();
                    oi.ID_OSAGRAL = og.Id;
                    oi.Insert();
                    if (oi.Error != "")
                    {
                        goto individualok;
                    }
                }
                else
                {
                    int diferencia = ajuste - stockActual;

                    oen_gral  og = new oen_gral();
                    oen_indiv oi = new oen_indiv();
                    og.Id           = og.NextID();
                    og.ID_PROVEEDOR = 0;
                    og.FECHA        = DateTime.Now;
                    oi.Id           = oi.NextID();
                    oi.ID_OENGRAL   = og.Id;
                    oi.ID_PRODUCTO  = productoSeleccionadoi.Id;
                    oi.QTY          = diferencia;

generalok:
                    og.Id = og.NextID();
                    og.Insert();
                    if (og.Error != "")
                    {
                        goto generalok;
                    }
individualok:
                    oi.Id         = oi.NextID();
                    oi.ID_OENGRAL = og.Id;
                    oi.Insert();
                    if (oi.Error != "")
                    {
                        goto individualok;
                    }
                }
            }
        }
        private void buttonIngresarHoja_Click(object sender, EventArgs e)
        {
            List <productos> listaproductos = new List <productos>();

            if (ProveedorSeleccionado == null)
            {
                return;
            }
            if (AccesoInternet())
            {
                OENGralSeleccionada.PARTIDAS.Clear();
                OENGralSeleccionada.ItemsInventario.Clear();
                OENGralSeleccionada.ID_PROVEEDOR   = ProveedorSeleccionado.ID;
                OENGralSeleccionada.CODIGODEBARRAS = OENGralSeleccionada.Id.ToString();
                OENGralSeleccionada.FECHA          = DateTime.Now.Date;
                if (PartidasOEN.Rows.Count > 0)
                {
                    int item = 1;
                    totales = 0;
                    double tjavier = 0;
                    foreach (DataRow dr in PartidasOEN.Rows)
                    {
                        #region datos individuales
                        oen_indiv PartidaIndividual = new oen_indiv();
                        PartidaIndividual.Id          = partidaId;
                        PartidaIndividual.ID_OENGRAL  = OENGralSeleccionada.Id;
                        PartidaIndividual.ITEM        = item;
                        PartidaIndividual.ID_PRODUCTO = Convert.ToInt32(dr["ID_PRODUCTO"]);
                        try
                        {
                            PartidaIndividual.QTY    = Convert.ToInt32(dr["QTY"]);
                            PartidaIndividual.COMPRA = Convert.ToInt32(dr["COMPRA"]);
                            PartidaIndividual.VENTA  = Convert.ToInt32(dr["VENTA"]);
                            PartidaIndividual.PU     = Convert.ToDouble(dr["PU"]);
                            if (dr["MONEDA"].ToString() == "USD" || dr["MONEDA"].ToString() == "usd")
                            {
                                tjavier = Convert.ToDouble(dr["PU"]) * Convert.ToDouble(dr["QTY"]);
                            }
                            else
                            {
                                tjavier = (Convert.ToDouble(dr["PU"]) / Convert.ToDouble(dr["TC"])) * Convert.ToDouble(dr["QTY"]);
                            }
                        }
                        catch
                        {
                            MessageBox.Show("Escriba costo unitario de todas las partidas");
                            return;
                        }
                        totales += tjavier;
                        PartidaIndividual.TC                = Convert.ToDouble(dr["TC"]);
                        PartidaIndividual.MONEDA            = dr["MONEDA"].ToString();
                        PartidaIndividual.FACTURA_PROVEEDOR = dr["FACTURA_PROVEEDOR"].ToString();
                        PartidaIndividual.FECHA_FACTURAP    = Convert.ToDateTime(dr["FECHA_FACTURAP"]);
                        string moneda = PartidaIndividual.MONEDA;
                        double pu     = PartidaIndividual.PU;
                        double tc     = PartidaIndividual.TC;
                        int    qty    = PartidaIndividual.QTY;
                        #endregion datos
                        productos stock = new productos(PartidaIndividual.ID_PRODUCTO);
                        if (stock.PrecioAlmacen > 0)
                        {
                            int nuevaCantidad = qty + stock.STOCK;
                            if (moneda == "PMX")//convierte a dolar
                            {
                                pu = pu / tc;
                            }
                            //if (stock.PrecioAlmacen < pu)
                            //{
                            stock.PrecioAlmacen = pu;//guarda el precio

                            /*                       //}
                             * if (stock.PrecioAlmacen != pu)
                             * {
                             *
                             * double sumaStock = stock.STOCK * stock.PrecioAlmacen;
                             * double sumaIngresos = pu * qty;
                             * double sumaTotal = sumaStock + sumaIngresos;
                             * double nuevoCosto = sumaTotal / nuevaCantidad;
                             *
                             * stock.PrecioAlmacen = nuevoCosto;
                             * }*/
                        }
                        else
                        {
                            if (moneda == "PMX")
                            {
                                pu /= tc;
                            }
                            stock.PrecioAlmacen = pu;
                            stock.MONEDA        = "USD";
                        }
                        stock.STOCK += PartidaIndividual.QTY;        //suma al stock
                        if (PartidaIndividual.QTY <= stock.ORDENADO) //le resta las entradas a las cantidades ordenadas
                        {
                            stock.ORDENADO -= PartidaIndividual.QTY;
                        }
                        else if (stock.ORDENADO > 0)//pone en cero lo ordenado
                        {
                            stock.ORDENADO = 0;
                        }
                        stock.FECHA_FACTURA = PartidaIndividual.FECHA_FACTURAP;
                        listaproductos.Add(stock);
                        //stock.Update("Id");//actualiza los datos del producto    ///////
                        #region guarda datos de inventario costos
                        inventariocostos invCost = new inventariocostos();// LLENADO DE InventarioCostos
                        invCost.Id               = PartidaIndividual.Id;
                        invCost.id_producto      = PartidaIndividual.ID_PRODUCTO;
                        invCost.cantidad_actual  = PartidaIndividual.QTY;
                        invCost.cantidad_oen     = PartidaIndividual.QTY;
                        invCost.costoU           = PartidaIndividual.PU;
                        invCost.Moneda           = PartidaIndividual.MONEDA;
                        invCost.tipoCambio       = PartidaIndividual.TC;
                        invCost.facturaProveedor = PartidaIndividual.FACTURA_PROVEEDOR;
                        invCost.fechaFactura     = PartidaIndividual.FECHA_FACTURAP;
                        invCost.totalItem        = PartidaIndividual.PU * PartidaIndividual.QTY;
                        if (PartidaIndividual.MONEDA == "USD")//convierte a pesos
                        {
                            invCost.totalItemPMX = invCost.totalItem * invCost.tipoCambio;
                        }
                        else
                        {
                            invCost.totalItemPMX = invCost.totalItem;
                        }
                        #endregion guarda
                        OENGralSeleccionada.PARTIDAS.Add(PartidaIndividual);
                        OENGralSeleccionada.ItemsInventario.Add(invCost);
                        partidaId++;
                        item++;
                    }
                    SaveFileDialog save = new SaveFileDialog();
                    save.DefaultExt = "pdf";
                    save.Filter     = "PDF files|*.pdf";
                    if (save.ShowDialog() == DialogResult.OK)
                    {
                        string ruta = save.FileName;
                        CreatePDF(ruta);
                        System.Diagnostics.Process.Start(ruta);
                    }
                    DialogResult result = MessageBox.Show("DESEA GENERAR LA ENTRADA CON LOS DATOS CAPTURADOS?", "REVISAR PDF ANTES DE GUARDAR", MessageBoxButtons.YesNo);
                    if (result == DialogResult.No)
                    {
                        return;
                    }
                    else if (result == DialogResult.Yes)
                    {
                        OENGralSeleccionada.InsertarHoja();
                        foreach (productos prod in listaproductos)
                        {
                            prod.Update("Id");
                        }
                        if (!(Directory.Exists(Application.StartupPath + @"/OEN_RESPALDO/")))
                        {
                            Directory.CreateDirectory(Application.StartupPath + @"/OEN_RESPALDO/");
                        }
                        string ruta = Application.StartupPath + @"/OEN_RESPALDO/OEN_" + textBoxOENid.Text + ".pdf";
                        CreatePDF(ruta);
                        resetOEN();
                    }
                }
                else
                {
                    MessageBox.Show("No hay partidas para guardar");
                }
            }
            else
            {
                MessageBox.Show("NO HAY INTERNET INTENTELO EN UN MOMENTO");//10000
            }
        }