コード例 #1
0
        public string InsertNotaCredito(E_NotaCredito ObjE_NotaCredito, string EmpresaSede)
        {
            SqlDatabase  SqlClient = new SqlDatabase(connectionString);
            DbConnection tCnn;

            tCnn = SqlClient.CreateConnection();
            tCnn.Open();
            DbTransaction tran = tCnn.BeginTransaction();
            string        NotaCreditoID;

            try
            {
                DbCommand SqlCommandVenta = SqlClient.GetStoredProcCommand("Ventas.Usp_Insert_NotaCreditoNavideño");
                SqlClient.AddInParameter(SqlCommandVenta, "@ClienteID", SqlDbType.Int, ObjE_NotaCredito.ClienteID);
                SqlClient.AddInParameter(SqlCommandVenta, "@NumComprobante", SqlDbType.Char, ObjE_NotaCredito.NumComprobante);
                SqlClient.AddInParameter(SqlCommandVenta, "@TipoComprobanteID", SqlDbType.Int, ObjE_NotaCredito.TipoComprobanteID);
                SqlClient.AddInParameter(SqlCommandVenta, "@Importe", SqlDbType.Decimal, ObjE_NotaCredito.Importe);
                SqlClient.AddInParameter(SqlCommandVenta, "@Concepto", SqlDbType.VarChar, ObjE_NotaCredito.Concepto);
                SqlClient.AddInParameter(SqlCommandVenta, "@UsuarioID", SqlDbType.Int, ObjE_NotaCredito.UsuarioID);
                SqlClient.AddInParameter(SqlCommandVenta, "@SedeID", SqlDbType.Char, ObjE_NotaCredito.SedeID);
                SqlClient.AddInParameter(SqlCommandVenta, "@EmpresaSede", SqlDbType.Char, EmpresaSede);
                NotaCreditoID = Convert.ToString(SqlClient.ExecuteScalar(SqlCommandVenta, tran));
                SqlCommandVenta.Dispose();

                tran.Commit();
                tCnn.Close();
                tCnn.Dispose();
                return(NotaCreditoID);
            }
            catch (Exception ex)
            {
                tran.Rollback();
                throw new Exception(ex.Message);
            }
        }
コード例 #2
0
        public string add_NotaCredito(E_NotaCredito oNotaCredito)
        {
            try
            {
                cn.Open();
                cmd = new SqlCommand("INSERT INTO NotasCredito(fechaAlta,idCliente,monto,codVenta) " +
                                     "VALUES(@fechaAlta,@idCliente,@monto,@codVenta) ", cn);

                cmd.CommandType = CommandType.Text;
                cmd.Parameters.AddWithValue("@fechaAlta", oNotaCredito.fecha);
                cmd.Parameters.AddWithValue("@idCliente", oNotaCredito.idCliente);
                cmd.Parameters.AddWithValue("@monto", oNotaCredito.monto);
                cmd.Parameters.AddWithValue("@codVenta", oNotaCredito.codVenta);

                cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                xRet = e.Message;
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
            }
            return(xRet);
        }
コード例 #3
0
        public string delete_NotaCredito(E_NotaCredito oNotaCredito)
        {
            try
            {
                cn.Open();
                cmd = new SqlCommand("UPDATE NotasCredito Set(fecha=@fecha,idCliente=@idCliente,monto=@monto,fechaUtilizado = @fechaUtilizado " +
                                     " montoUtilizado =@montoUtilizado) where idNotaCredito=@idNotaCredito", cn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@idCliente", oNotaCredito.idCliente);
                cmd.Parameters.AddWithValue("@fecha", oNotaCredito.fecha);
                cmd.Parameters.AddWithValue("@idCliente", oNotaCredito.idCliente);
                cmd.Parameters.AddWithValue("@monto", oNotaCredito.monto);
                cmd.Parameters.AddWithValue("@fechaUtilizado", oNotaCredito.fechaUtilizado);
                cmd.Parameters.AddWithValue("@montoUtilizado", oNotaCredito.montoUtilizado);

                cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                xRet = e.Message;
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
            }


            return(xRet);
        }
コード例 #4
0
        /// <summary>
        /// Permite obtener el primer credito vigente otorgado al cliente
        /// </summary>
        /// <param name="idCliente"></param>
        /// <returns></returns>
        public E_NotaCredito getPrimerCredito(Int64 idCliente)
        {
            E_NotaCredito oNotaCredito = null;

            try
            {
                cn.Open();
                cmd             = new SqlCommand("getPrimerCredito", cn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@idCliente", idCliente);


                SqlDataReader oReader = cmd.ExecuteReader();



                while (oReader.Read())
                {
                    oNotaCredito = new E_NotaCredito();
                    oNotaCredito.idNotaCredito = Convert.ToInt64(oReader["idNotaCredito"]);
                    oNotaCredito.fecha         = Convert.ToDateTime(oReader["fechaAlta"]);
                    oNotaCredito.monto         = Convert.ToDecimal(oReader["monto"]);
                    oNotaCredito.idCliente     = Convert.ToInt64(oReader["idCliente"]);
                    //oNotaCredito.fechaUtilizado =
                    if (oReader["fechaUtilizado"] == DBNull.Value)
                    {
                        oNotaCredito.utilizado = false;
                    }
                    else
                    {
                        oNotaCredito.fechaUtilizado = Convert.ToDateTime(oReader["fechaUtilizado"]);
                        oNotaCredito.montoUtilizado = Convert.ToDecimal(oReader["montoUtilizado"]);
                    }

                    oNotaCredito.codVenta = oReader["codVenta"] == DBNull.Value ? 0 : Convert.ToInt64(oReader["codVenta"]);
                    //oNotaCredito.nombreCliente = Convert.ToString(oReader["cliente"]);
                }
            }
            catch (Exception e)
            {
                xRet         = e.Message;
                oNotaCredito = null;
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
            }

            return(oNotaCredito);
        }
コード例 #5
0
        public string InsertNotaCredito(E_NotaCredito ObjE_NotaCredito, DataTable DtDetalle, string EmpresaSede, bool ActualizaStock)
        {
            string         xml;
            string         xmlDetalle        = null;
            CD_NotaCredito ObjCD_NotaCredito = new CD_NotaCredito(AppSettings.GetConnectionString);

            if (ActualizaStock == true)
            {
                xml        = new BaseFunctions().GetXML(DtDetalle).Replace("NewDataSet", "DocumentElement");
                xmlDetalle = xml.Replace("Table", "DetalleComprobante");
            }

            return(ObjCD_NotaCredito.InsertNotaCredito(ObjE_NotaCredito, xmlDetalle, EmpresaSede, ActualizaStock));
        }
コード例 #6
0
        public List <E_NotaCredito> getAll(DateTime fecDesde, DateTime fecHasta, string descripcionClie)
        {
            List <E_NotaCredito> listNotaCredito = new List <E_NotaCredito>();

            try
            {
                cn.Open();
                cmd             = new SqlCommand("getAllNotaCredito", cn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@fecDesde", fecDesde);
                cmd.Parameters.AddWithValue("@fecHasta", fecHasta);
                cmd.Parameters.AddWithValue("@descripcion", descripcionClie);

                SqlDataReader oReader = cmd.ExecuteReader();



                while (oReader.Read())
                {
                    E_NotaCredito oNotaCredito = new E_NotaCredito();
                    oNotaCredito.idNotaCredito  = Convert.ToInt64(oReader["idNotaCredito"]);
                    oNotaCredito.fecha          = Convert.ToDateTime(oReader["fechaAlta"]);
                    oNotaCredito.monto          = Convert.ToDecimal(oReader["monto"]);
                    oNotaCredito.idCliente      = Convert.ToInt64(oReader["idCliente"]);
                    oNotaCredito.montoUtilizado = oReader["montoUtilizado"] == DBNull.Value ?  0: Convert.ToDecimal(oReader["montoUtilizado"]);
                    oNotaCredito.codVenta       = oReader["codVenta"] == DBNull.Value ? 0 :   Convert.ToInt64(oReader["codVenta"]);
                    oNotaCredito.nombreCliente  = Convert.ToString(oReader["cliente"]);

                    listNotaCredito.Add(oNotaCredito);
                }

                return(listNotaCredito);
            }
            catch (Exception e)
            {
                xRet            = e.Message;
                listNotaCredito = null;
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
            }

            return(listNotaCredito);
        }
コード例 #7
0
        public string UtilizarCredito(Entidades.E_Venta venta)
        {
            string xRet = "0";
            //CREdit
            decimal totalCreditoUtilizar = venta.precioTotal;

            while (totalCreditoUtilizar > 0)
            {
                Entidades.E_NotaCredito nc = bdNotaCredito.getPrimerCredito(venta.cliente.idCliente);
                if (nc != null)                           //Tiene credito vigente
                {
                    if (nc.monto >= totalCreditoUtilizar) // El monto del credito es mayo o  igual al  total utilizar
                    {
                        //Utilizo el credito
                        xRet = bdNotaCredito.utilizarCredito(totalCreditoUtilizar, venta.codVenta, nc.idNotaCredito);

                        if (nc.monto > totalCreditoUtilizar) // SI el monto del credito es mayor que el total de la venta a utilizar
                        {
                            //Creo un nuevo credito con el restante
                            decimal restanteCredito = nc.monto - totalCreditoUtilizar;

                            Entidades.E_NotaCredito nvaNc = new E_NotaCredito(venta.cliente.idCliente, restanteCredito, DateTime.Now, venta.codVenta);

                            bdNotaCredito.add_NotaCredito(nvaNc);
                        }
                        //resto el total de credito a utilizar
                        totalCreditoUtilizar -= nc.monto;
                    }
                    else
                    {
                        //Utilizo el total del credito
                        xRet = bdNotaCredito.utilizarCredito(nc.monto, venta.codVenta, nc.idNotaCredito);
                    }
                }
                else // no tiene credito vigente
                {
                    totalCreditoUtilizar = 0;
                }
            }


            return("0");
        }
コード例 #8
0
        public string InsertNotaCreditoI(E_NotaCredito ObjE_NotaCredito, string EmpresaSede)
        {
            CD_NotaCredito ObjCD_NotaCredito = new CD_NotaCredito(AppSettings.GetConnectionString);

            return(ObjCD_NotaCredito.InsertNotaCreditoI(ObjE_NotaCredito, EmpresaSede));
        }
コード例 #9
0
        private void BtnRegistrar_Click(object sender, EventArgs e)
        {
            ErrProvider.Clear();
            Cursor = Cursors.WaitCursor;
            try
            {
                bool ActualizaStock = false;

                if (LblDevolucion.Text != "" & TxtConcepto.Text != "" || rbOtros.Checked)
                {
                    if (Importe > 0 || rbOtros.Checked == true)
                    {
                        E_NotaCredito ObjE_NotaCredito = new E_NotaCredito();
                        ObjE_NotaCredito.ClienteID         = ClienteID;
                        ObjE_NotaCredito.NumCaja           = NumCaja;
                        ObjE_NotaCredito.NumComprobante    = NumComprobante;
                        ObjE_NotaCredito.TipoComprobanteID = TipoComprobanteID;
                        if (rbOtros.Checked)
                        {
                            ObjE_NotaCredito.Importe = 0;
                        }
                        else
                        {
                            ObjE_NotaCredito.Importe = Importe;
                        }

                        if (rbDescuentos.Checked)
                        {
                            ObjE_NotaCredito.descuento = Convert.ToDecimal(txtDescuento.Text);
                        }
                        ObjE_NotaCredito.Concepto  = TxtConcepto.Text;
                        ObjE_NotaCredito.UsuarioID = AppSettings.UserID;
                        ObjE_NotaCredito.SedeID    = AppSettings.SedeID;

                        DataTable DT = new DataTable("DetalleComprobante");

                        if (rbNormal.Checked)
                        {
                            //eliminar columnas

                            DataView DV = new DataView(DtDetalleComprobante);
                            DV.RowFilter = "Descontar > 0";
                            DT           = DV.ToTable();
                            DT.Columns.Remove("NumComprobante");
                            DT.Columns.Remove("TipoComprobanteID");
                            DT.Columns.Remove("Alias");
                            DT.Columns.Remove("UnidadMedidaID");
                            DT.Columns.Remove("Cantidad");
                            DT.Columns.Remove("PrecioUnitario");
                            DT.Columns.Remove("Importe");
                            DT.Columns.Remove("EstadoID");

                            ActualizaStock = true;
                        }
                        else
                        {
                            ActualizaStock = false;
                        }

                        NotaCreditoID = ObjCL_NotaCredito.InsertNotaCredito(ObjE_NotaCredito, DT, EmpresaID + AppSettings.SedeID, ActualizaStock);
                        MessageBox.Show("Se creo la nota de credito correctamente.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        // MessageBox.Show(ObjCL_NotaCredito.FormatoNotaCredito(LblEmpresa.Text, NotaCreditoID, NumComprobante, cbComprobante.Columns["NomTipoComprobante"].Value.ToString(), AppSettings.NomSede, LblRUC.Text, AppSettings.Usuario, Importe, NomCaja, TxtConcepto.Text), "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Limpiar();
                    }
                }
                else
                {
                    if (TxtConcepto.Text == "")
                    {
                        ErrProvider.SetError(TxtConcepto, "Debe ingresar el motivo de la devolución.");
                    }
                    if (LblDevolucion.Text == "" | LblDevolucion.Text == "0")
                    {
                        ErrProvider.SetError(LblDevolucion, "El importe de devolución no debe ser cero.");
                    }
                }
                Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Cursor = Cursors.Default;
            }
        }
コード例 #10
0
 public string add_NotaCredito(E_NotaCredito oNotaCredito)
 {
     return(bdNotaCredito.add_NotaCredito(oNotaCredito));
 }