public void Alta(TEMPORAL_STOCK objeto)
 {
     using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia())
     {
         ctx.TEMPORAL_STOCK.AddObject(objeto);
         ctx.SaveChanges();
     }
 }
 public void Modificacion(TEMPORAL_STOCK objeto)
 {
     using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia())
     {
         ctx.TEMPORAL_STOCK.Attach(objeto);
         ctx.ObjectStateManager.ChangeObjectState(objeto, System.Data.EntityState.Modified);
         ctx.SaveChanges();
     }
 }
 public TEMPORAL_STOCK AltaConRetorno(TEMPORAL_STOCK objeto)
 {
     using (SIST_SUPERMERCADOEntities ctx = SIST_SUPERMERCADOEntities.ObtenerInstancia())
     {
         ctx.TEMPORAL_STOCK.AddObject(objeto);
         ctx.SaveChanges();
         return ObtenerPorID(objeto.TEMP_ID);
     }
 }
示例#4
0
 public void ModificacionStock(TEMPORAL_STOCK entidad)
 {
     mTEMPORAL_STOCK.Modificacion(entidad);
 }
示例#5
0
 public void BajaFisicaStock(TEMPORAL_STOCK entidad)
 {
     mTEMPORAL_STOCK.Baja(entidad);
 }
示例#6
0
 public void AltaStock(TEMPORAL_STOCK entidad)
 {
     mTEMPORAL_STOCK.Alta(entidad);
 }
示例#7
0
 public TEMPORAL_STOCK AltaConRetorno(TEMPORAL_STOCK entidad)
 {
     return mTEMPORAL_STOCK.AltaConRetorno(entidad);
 }
示例#8
0
        public bool ValidacionBajaStock(TEMPORAL_STOCK entidad)
        {
            //VALIDAR QUE EL CLIENTE NO TENGA ASIGNADA NINGUNA CTA CTE NI NOTA DE PEDIDO
            //    var cta = entidad.Cta_Ctes; // mCTACTES_CLI_FABS.ObtenerCtaCteCliente(eTEMPORALSTOCK);

            //    if (cta != null)
            //    {
            //        return false;
            //    }
            //    else
            //    {
            return true;
            //    }
        }
        private void btnGUARDAR_Click(object sender, EventArgs e)
        {
            try
            {
                //validar todo
                //que la suma de la cantidad devuelta y a devolver no supere a la catidad de la venta.que si es de balanza que meta la misma cantidad
                if (!ValidacionCantidades())
                {
                    return;
                }

                EsValido = true;
                if (!ValidateChildren() || !EsValido)
                {
                    DialogResult = DialogResult.None;
                    return;
                }

                using (TransactionScope TRANSACCION = new TransactionScope())
                {
                    switch (modo)
                    {
                        case "A":
                            eDEVOLUCION = new DEVOLUCION();

                            if (eVta.CLIENTE != null)
                                eDEVOLUCION.CLI_ID = eVta.CLIENTE.CLI_ID;

                            eDEVOLUCION.VTA_ID = eVta.VTA_ID;
                            eDEVOLUCION.EMP_ID = eEmpleado.EMP_ID;
                            eDEVOLUCION.DEV_FECHA = DateTime.Now;
                            eDEVOLUCION.DEV_TOTAL = Convert.ToDecimal(lblTotalNC.Text);
                            //eDEVOLUCION.PRE_DESCUENTO = Convert.ToDecimal(lblDESCUENTO.Text);

                            eDEVOLUCION = cDEVOLUCION.AltaConRetorno(eDEVOLUCION);

                            foreach (DETALLE_DEVOLUCION LineaEnGrilla in LineasEnGrilla)
                            {
                                //quito las entidades
                                LineaEnGrilla.PRODUCTO = null;
                                LineaEnGrilla.CATEGORIA_PRODUCTO = null;
                                LineaEnGrilla.ENVASE = null;

                                LineaEnGrilla.DDEV_CANTIDADDEVUELTA = LineaEnGrilla.DDEV_CANTIDADADEVOLVER;
                                LineaEnGrilla.DDEV_CANTIDADADEVOLVER = Convert.ToDecimal(0.ToString("0.000"));

                                LineaEnGrilla.DEV_ID = eDEVOLUCION.DEV_ID;
                                cDETALLE_DEVOLUCION.Alta(LineaEnGrilla);
                            }
                            break;

                        case "M":
                            //actualizar la devolucion
                            eDEVOLUCION.EMP_ID = eEmpleado.EMP_ID;
                            eDEVOLUCION.DEV_FECHA = DateTime.Now;
                            eDEVOLUCION.DEV_TOTAL = Convert.ToDecimal(lblTotalNC.Text) + eDEVOLUCION.DEV_TOTAL;
                            //eDEVOLUCION.PRE_DESCUENTO = Convert.ToDecimal(lblDESCUENTO.Text);

                            cDEVOLUCION.Modificacion(eDEVOLUCION);

                            foreach (var LineaEnGrilla in LineasEnGrilla)
                            {
                                //quito las entidades
                                LineaEnGrilla.PRODUCTO = null;
                                LineaEnGrilla.CATEGORIA_PRODUCTO = null;
                                LineaEnGrilla.ENVASE = null;

                                var cantDev = LineaEnGrilla.DDEV_CANTIDADDEVUELTA + LineaEnGrilla.DDEV_CANTIDADADEVOLVER;
                                LineaEnGrilla.DDEV_CANTIDADDEVUELTA = cantDev;
                                LineaEnGrilla.DDEV_CANTIDADADEVOLVER = Convert.ToDecimal(0.ToString("0.000"));

                                cDETALLE_DEVOLUCION.Modificacion(LineaEnGrilla);
                            }
                            break;
                    }

                    //Actualiza Stock
                    foreach (var item in LineasEnGrilla)
                    {
                        //actualiza el stock desde la tabla temporal
                        if (item.PRO_ID != null)
                        {
                            var tempStock = new TEMPORAL_STOCK
                            {
                                PRO_CANTIDAD = item.DDEV_CANTIDAD,
                                PRO_ID = (int)item.PRO_ID,
                                TEMP_FECHA = DateTime.Now
                            };

                            cTEMPORAL.AltaStock(tempStock);
                        }
                        if (item.ENV_ID != null) //es envase
                        {
                            item.ENVASE.ENV_STOCKACTUAL += (int)item.DDEV_CANTIDAD;
                            cENVASE.Modificacion(item.ENVASE);
                        }
                    }

                    MostrarMensajeInformativo("Se generara una nota de credito para la Devolucion nro: " + eDEVOLUCION.DEV_ID + ".");

                    //CREAR UNA NOTA DE CREDITO E IMPRIMIRLA
                    //DESCRIPCION TOTAL Y VENTA
                    NOTA_CREDITO eNOTA_CREDITO = new NOTA_CREDITO();
                    eNOTA_CREDITO.NOT_DESCRIPCION = txtDescripcion.Text.ToUpper();
                    eNOTA_CREDITO.NOT_TOTAL = Convert.ToDecimal(lblTotalNC.Text);
                    eNOTA_CREDITO.VTA_ID = eVta.VTA_ID;
                    cNOTA_CREDITO.Alta(eNOTA_CREDITO);

                    //MOVIMIENTO_CAJA eMOVIMIENTO_CAJA = new MOVIMIENTO_CAJA();
                    //eMOVIMIENTO_CAJA.MOVC_FECHA = dtpFecha.Value;
                    //eMOVIMIENTO_CAJA.MOVC_VALOR = Convert.ToDecimal(txtImporte.Text);
                    //eMOVIMIENTO_CAJA.TIPM_ID = (int)cmbTipoDocumento.SelectedValue;
                    //eMOVIMIENTO_CAJA.TMOV_ID = (int)cmbTipoMovimiento.SelectedValue;
                    //eMOVIMIENTO_CAJA.TIPM_NUMERO = Convert.ToInt32(txtNroDocumento.Text);
                    //eMOVIMIENTO_CAJA.MOVC_DESCRIPCION = txtDescripcion.Text;
                    //eMOVIMIENTO_CAJA.CAJ_ID = CajaPerteneciente.CAJ_ID;
                    //cMOVIMIENTO_CAJA.Alta(eMOVIMIENTO_CAJA);

                    TRANSACCION.Complete();
                }

                ImprimirDEVOLUCION(eDEVOLUCION);//Nota de Credito Y ACTUALIZAR LA NOT_NUMERO XQ LO DEVUELVE LA IMPRESORA

                this.Dispose();
            }
            catch (Exception ex)
            {
                ProcesarExcepcion(ex);
                DialogResult = DialogResult.None;
            }
        }
示例#10
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (!Validar()) return;

                ReiniciarValidacionControl(txtNroDocumento);
                if (string.IsNullOrEmpty(txtNroDocumento.Text))
                {
                    ValidarTextboxObligatorio(txtNroDocumento, lblNroDocumento.Text);
                    return;
                }

                using (TransactionScope transaccion = new TransactionScope())
                {
                    var oMOV_CTA_CTE_PROV_FACTURA = new MOVIMIENTO_CTACTE_PROVEEDOR();

                    //1ro TENGO QUE DAR DE ALTA EL MOVIMIENTO DE LA CTA CTE O SEA LA FACTURA A LA CTA DEL PROVEEDOR
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_VALORMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_SALDOMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_SUBTOTAL = Convert.ToDecimal(txtSubTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_PORCENTAJEDESCUENTO = Convert.ToDecimal(txtDescuentoPorcTotal.Text);
                    oMOV_CTA_CTE_PROV_FACTURA.TIPM_ID = (int)cmbComprobante.SelectedValue;
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_CONCEPTO = ((TIPO_MOVIMIENTO)cmbComprobante.SelectedItem).TIPM_CONCEPTO;
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_FECHAMOVIMIENTO = dtpFecha.Value;
                    oMOV_CTA_CTE_PROV_FACTURA.MCCP_NROFACTURA = txtNroDocumento.Text;
                    oMOV_CTA_CTE_PROV_FACTURA.FOR_ID = (int)cmbFormaPago.SelectedValue;

                    oMOV_CTA_CTE_PROV_FACTURA.CCP_ID = eCTA.CCP_ID;

                    oMOV_CTA_CTE_PROV_FACTURA = cMOVIMIENTO_CTACTE_PROVEEDORES.AltaConRetorno(oMOV_CTA_CTE_PROV_FACTURA);
                    //SI FORMA DE PAGO ES EFECTIVO GENERA RECIBO PARA QUE EL SALDO QUEDE SALDADO
                    if (((FORMA_PAGO)cmbFormaPago.SelectedItem).FOR_DESCRIPCION.Contains("EFECTIVO"))
                    {
                        var oMOV_CTA_CTE_PROV_RECIBO = new MOVIMIENTO_CTACTE_PROVEEDOR();

                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_VALORMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_SALDOMOVIMIENTO = Convert.ToDecimal(txtTotal.Text);
                        var tipoMov = cTIPO_MOVIMIENTO.ObtenerTipoRecibo();
                        oMOV_CTA_CTE_PROV_RECIBO.TIPM_ID = tipoMov.TIPM_ID;
                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_CONCEPTO = tipoMov.TIPM_CONCEPTO;
                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_FECHAMOVIMIENTO = dtpFecha.Value;

                        oMOV_CTA_CTE_PROV_RECIBO.MCCP_NROCOMPROBANTE = 0; //CERO INDICA FACTURA PAGA EN EFECTIVO

                        //agrego a la cta cte el movimiento
                        var cta = cPROVEEDOR.ObtenerCtaCteProveedor(ePROVEEDOR);
                        oMOV_CTA_CTE_PROV_RECIBO.CCP_ID = cta.CCP_ID;

                        cMOVIMIENTO_CTACTE_PROVEEDORES.Modificacion(oMOV_CTA_CTE_PROV_FACTURA);

                        oMOV_CTA_CTE_PROV_RECIBO = cMOVIMIENTO_CTACTE_PROVEEDORES.AltaConRetorno(oMOV_CTA_CTE_PROV_RECIBO);

                        oMOV_CTA_CTE_PROV_FACTURA.MCCP_NROCOMPROBANTE = oMOV_CTA_CTE_PROV_RECIBO.MCCP_ID;
                        cMOVIMIENTO_CTACTE_PROVEEDORES.Modificacion(oMOV_CTA_CTE_PROV_FACTURA);
                    }

                    //agrego a la cta cte el movimiento
                    //var ctaCte = cPROVEEDOR.ObtenerCtaCteProveedor(ePROVEEDOR);
                    //ctaCte.MOVIMIENTOS_CTACTE_PROVEEDOR.Add(oMOV_CTA_CTE_PROV_FACTURA);

                    //2do TENGO QUE DAR DE ALTA CADA UNA DE LAS LINES DE FACTURA
                    DataTable tblGrilla;
                    tblGrilla = dsDatos.Tables["GrillaFactura"];

                    foreach (DataRow lineaVtaGrilla in tblGrilla.Rows)
                    {
                        LINEA_FACTURA nuevaLinea = new LINEA_FACTURA();

                        nuevaLinea.PRO_ID = Convert.ToInt32(lineaVtaGrilla["PRO_ID"]);
                        nuevaLinea.LIN_CANTIDAD = Convert.ToDecimal(lineaVtaGrilla["CANTIDAD_TOTAL"]);
                        nuevaLinea.LIN_COSTO = Convert.ToDecimal(lineaVtaGrilla["PRECIOCOSTO_SINIVA"]);
                        nuevaLinea.LIN_PORCENTAJEDESCUENTO = Convert.ToInt32(lineaVtaGrilla["PORCENTAJEDESCUENTO"]);
                        nuevaLinea.TIVA_ID = Convert.ToInt32(lineaVtaGrilla["TIVA_ID"]);
                        nuevaLinea.MCCP_ID = oMOV_CTA_CTE_PROV_FACTURA.MCCP_ID;

                        nuevaLinea = cLINEA_FACTURA.AltaConRetorno(nuevaLinea);

                        //doy de alta el producto temporal para actualizar el stock
                        var tempStock = new TEMPORAL_STOCK
                            {
                                PRO_CANTIDAD = Convert.ToDecimal(lineaVtaGrilla["CANTIDAD_TOTAL"]),
                                PRO_ID = nuevaLinea.PRO_ID,
                                TEMP_FECHA = DateTime.Now
                            };

                        cTEMPORAL.AltaStock(tempStock);

                        //doy de alta el producto temporal para actualizar el precio si EL COSTO CAMBIA o IVA CAMBIA
                        if (nuevaLinea.PRODUCTO.PRO_COSTO != Convert.ToDecimal(lineaVtaGrilla["PRECIOCOSTO_SINIVA"])
                                || nuevaLinea.TIVA_ID != Convert.ToInt32(lineaVtaGrilla["TIVA_ID"]))
                        {
                            //busca producto para obtener la ganancia
                            PRODUCTO oPRODUCTO = cPRODUCTO.ObtenerPorID(Convert.ToInt32(lineaVtaGrilla["PRO_ID"]));
                            TEMPORAL_PRECIO productoEnTemporal = cTEMPORAL.ObtenerPorIDProducto((int)nuevaLinea.PRO_ID);

                            //Calculo de precio y ganancia
                            var impuesto = Convert.ToDecimal(lineaVtaGrilla["PORCENTAJEIVA"]);
                            var costo = Convert.ToDecimal(lineaVtaGrilla["PRECIOCOSTO_SINIVA"]);
                            var precioVta = Convert.ToDecimal(lineaVtaGrilla["PRECIO_VENTA"]);
                            var gananciaReal = Convert.ToDecimal(lineaVtaGrilla["PRO_MARGENGANANCIAREAL"]);

                            var gananciaPromo = Convert.ToDecimal(oPRODUCTO.PRO_MARGENPROMO);
                            var precioVtaPromo = cMetodosComunes.PrecioVentaGenerico(impuesto, gananciaPromo, costo, ePARAMETRO);
                            var margenGananciaPromo = cMetodosComunes.PorcentajeGananciaGenerico(impuesto, precioVta, costo);

                            if (productoEnTemporal != null)
                            {
                                var dr = MostrarMensajePreguntaSI_NO("Existe un registro para actualizar en Actualizacion Precios, \n Precio de Costo = " + productoEnTemporal.PRO_COSTO + "\n Margen de Ganancia: " + productoEnTemporal.PRO_MARGENGANANCIAREAL + "\n Precio Venta: " + productoEnTemporal.PRO_PRECIOVTA);
                                if (dr)
                                {
                                    productoEnTemporal.PRO_COSTO = costo;
                                    productoEnTemporal.PRO_PRECIOVTA = precioVta;
                                    productoEnTemporal.PRO_MARGENGANANCIAREAL = margenGananciaPromo;
                                    productoEnTemporal.PRO_PRECIOVTAPROMO = precioVtaPromo;
                                    productoEnTemporal.PRO_MARGENGANANCIAPROMO = margenGananciaPromo;
                                    productoEnTemporal.TIVA_ID = Convert.ToInt32(lineaVtaGrilla["TIVA_ID"]);
                                    productoEnTemporal.TEMP_FECHA = DateTime.Now;

                                    cTEMPORAL.ModificacionPrecio(productoEnTemporal);
                                }
                            }

                            else
                            {
                                var tempPrecio = new TEMPORAL_PRECIO
                                {
                                    PRO_COSTO = costo,
                                    PRO_PRECIOVTA = precioVta,
                                    PRO_MARGENGANANCIAREAL = margenGananciaPromo,
                                    PRO_PRECIOVTAPROMO = precioVtaPromo,
                                    PRO_MARGENGANANCIAPROMO = margenGananciaPromo,
                                    PRO_ID = nuevaLinea.PRO_ID,
                                    TIVA_ID = nuevaLinea.TIVA_ID,
                                    TEMP_FECHA = DateTime.Now
                                };

                                cTEMPORAL.AltaPrecio(tempPrecio);
                            }
                        }
                    }

                    //3to ACTUALIZAR EL SALDO EN LA CTA CTE DEL PROVEEDOR
                    switch (((TIPO_MOVIMIENTO)cmbComprobante.SelectedItem).TIPM_CONCEPTO)
                    {
                        case "DEBE": eCTA.CCP_SALDO += oMOV_CTA_CTE_PROV_FACTURA.MCCP_VALORMOVIMIENTO; break;
                        case "HABER": eCTA.CCP_SALDO -= oMOV_CTA_CTE_PROV_FACTURA.MCCP_VALORMOVIMIENTO; break;
                    }

                    cCTACTE_PROVEEDOR.Modificacion(eCTA);
                    cMOVIMIENTO_CTACTE_PROVEEDORES.Modificacion(oMOV_CTA_CTE_PROV_FACTURA);
                    //4ro ALTA EL SEGUIMIENTO DE PRODUCTOS
                    foreach (var item in oMOV_CTA_CTE_PROV_FACTURA.LINEAS_FACTURA)
                    {
                        var oSEG_PROD = new SEGUIMIENTO_PRODUCTO
                            {
                                PRO_ID = item.PRODUCTO.PRO_ID,
                                PROV_ID = ePROVEEDOR.PROV_ID,
                                SEG_FECHA = dtpFecha.Value,
                                SEG_PRECIOCOSTO = item.LIN_COSTO,
                                SEG_MARGENGANANCIA = item.PRODUCTO.PRO_MARGENGANANCIAREAL
                            };

                        cSEGUIMIENTOS_PRODUCTOS.Alta(oSEG_PROD);
                    }

                    transaccion.Complete();
                }
                MostrarMensajeInformativo("La Factura se realizó con éxito");
                this.DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            {
                ProcesarExcepcion(ex);
                this.DialogResult = DialogResult.Cancel;
            }
        }
 /// <summary>
 /// Crear un nuevo objeto TEMPORAL_STOCK.
 /// </summary>
 /// <param name="tEMP_ID">Valor inicial de la propiedad TEMP_ID.</param>
 /// <param name="pRO_ID">Valor inicial de la propiedad PRO_ID.</param>
 public static TEMPORAL_STOCK CreateTEMPORAL_STOCK(global::System.Int32 tEMP_ID, global::System.Int32 pRO_ID)
 {
     TEMPORAL_STOCK tEMPORAL_STOCK = new TEMPORAL_STOCK();
     tEMPORAL_STOCK.TEMP_ID = tEMP_ID;
     tEMPORAL_STOCK.PRO_ID = pRO_ID;
     return tEMPORAL_STOCK;
 }
 /// <summary>
 /// Método desusado para agregar un nuevo objeto al EntitySet TEMPORAL_STOCK. Considere la posibilidad de usar el método .Add de la propiedad ObjectSet&lt;T&gt; asociada.
 /// </summary>
 public void AddToTEMPORAL_STOCK(TEMPORAL_STOCK tEMPORAL_STOCK)
 {
     base.AddObject("TEMPORAL_STOCK", tEMPORAL_STOCK);
 }