コード例 #1
0
        public static void CreateFactura(FacturaEncabezado oFacturaEncabezado)
        {
            List <SqlParameter> listaInsertar = new List <SqlParameter>();
            SqlParameter        paramId       = new SqlParameter("@Identity", SqlDbType.Int)
            {
                Direction = ParameterDirection.Output
            };
            SqlParameter IdClient      = new SqlParameter("@P_IdCliente", oFacturaEncabezado.IdCliente);
            SqlParameter NumFac        = new SqlParameter("@P_NumeroFactura", oFacturaEncabezado.NumeroFactura);
            SqlParameter CodigoCliente = new SqlParameter("@P_CodigoEmpresa", oFacturaEncabezado.CodigoEmpresa);
            SqlParameter CodigoEmpresa = new SqlParameter("@P_CodigoCliente", oFacturaEncabezado.CodigoCliente);
            SqlParameter Sub_Total     = new SqlParameter("@P_Sub_Total", oFacturaEncabezado.Sub_Total);
            SqlParameter Impuesto      = new SqlParameter("@P_Impuesto", oFacturaEncabezado.Impuesto);
            SqlParameter Total         = new SqlParameter("@P_Total", oFacturaEncabezado.Total);
            SqlParameter FechaFactura  = new SqlParameter("@P_FechaFactura", oFacturaEncabezado.FechaFactura);

            listaInsertar.Add(NumFac);
            listaInsertar.Add(IdClient);
            listaInsertar.Add(CodigoCliente);
            listaInsertar.Add(CodigoEmpresa);
            listaInsertar.Add(Sub_Total);
            listaInsertar.Add(Impuesto);
            listaInsertar.Add(Total);
            listaInsertar.Add(FechaFactura);
            listaInsertar.Add(paramId);

            Conexion.EjecutarOperacion("FacturaEncabezadoInsert", listaInsertar, CommandType.StoredProcedure);
            int idEncabezado = (int)paramId.Value;

            foreach (FacturaDetalle Linea in oFacturaEncabezado.Lineas)
            {
                List <SqlParameter> ListaDetalle = new List <SqlParameter>();

                Linea.IdFacturaEncabezado = idEncabezado;

                SqlParameter IdFacDetalle = new SqlParameter("@P_Identity", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                };

                SqlParameter IdFacEnc       = new SqlParameter("@P_IdFacturaEncabezado", Linea.IdFacturaEncabezado);
                SqlParameter IdProd         = new SqlParameter("@P_IdProducto", Linea.IdProducto);
                SqlParameter CodigoProducto = new SqlParameter("@P_CodigoProducto", Linea.CodigoProducto);
                SqlParameter NombreProducto = new SqlParameter("@P_NombreProducto", Linea.NombreProducto);
                SqlParameter descuento      = new SqlParameter("@P_Descuento", Linea.Descuento);
                SqlParameter cantidad       = new SqlParameter("@P_cantidad", Linea.Cantidad);

                ListaDetalle.Add(IdFacEnc);
                ListaDetalle.Add(IdProd);
                ListaDetalle.Add(CodigoProducto);
                ListaDetalle.Add(NombreProducto);
                ListaDetalle.Add(descuento);
                ListaDetalle.Add(cantidad);
                ListaDetalle.Add(IdFacDetalle);    // agrega el idDetalle

                Conexion.EjecutarOperacion("FacturaDetalleInsert", ListaDetalle, CommandType.StoredProcedure);
                int idDetalle = (int)IdFacDetalle.Value;
            }
        }
コード例 #2
0
 public Operacion ImprimirFactura(FacturaEncabezado facturaEncabezado)
 {
     return new Operacion
     {
         Codigo = 0,
         Resultado = ResultadoOperacionTipo.Exito,
         Mensaje = "Proces exitoso"
     };
 }
コード例 #3
0
        public static void DeleteFactura(FacturaEncabezado ofacturaEncabezado)
        {
            List <SqlParameter> lista  = new List <SqlParameter>();
            SqlParameter        codigo = new SqlParameter("@P_IdFacturaEncabezado", ofacturaEncabezado.IdEncabezado);

            lista.Add(codigo);

            Conexion.EjecutarOperacion("FacturaEncabezadoDelete", lista, CommandType.StoredProcedure);
        }
コード例 #4
0
        public static bool RegistrarFacturaVenta(FacturaEncabezado oFacturaVta)
        {
            try
            {
                FacturaPersistence.CreateFactura(oFacturaVta);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);

                throw ex;
            }
        }
コード例 #5
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            cboCliente.ValueMember = "IdCliente";
            var _IdCliente     = int.Parse(cboCliente.SelectedValue.ToString());
            var _NumeroFactura = txtNroFactura.Text;

            cboCliente.ValueMember = "CodigoCliente";
            var _CodigoEmpresa = cboCliente.SelectedValue.ToString();
            var _CodigoCliente = cboCliente.SelectedValue.ToString();
            var _Impuesto      = decimal.Parse(txtImpuesto.Text);
            var _FechaFactura  = DateTime.Parse(txtFechaFactura.Text);


            FacturaEncabezado oFactura = new FacturaEncabezado
            {
                IdCliente     = _IdCliente,
                NumeroFactura = _NumeroFactura,
                CodigoEmpresa = _CodigoEmpresa,
                CodigoCliente = _CodigoCliente,
                Impuesto      = _Impuesto,
                Total         = Convert.ToDecimal(txtTotal.Text),
                Sub_Total     = Convert.ToDecimal(txtSubTotal.Text),
                FechaFactura  = _FechaFactura
            };


            foreach (DataGridViewRow row in dgvDetalle.Rows)
            {
                FacturaDetalle FacturaLinea = new FacturaDetalle
                {
                    IdProducto     = Convert.ToInt16(row.Cells["IdProducto"].Value),
                    CodigoProducto = Convert.ToString(row.Cells["CodigoProducto"].Value),
                    NombreProducto = Convert.ToString(row.Cells["NombreProducto"].Value),
                    Descuento      = Convert.ToDecimal(row.Cells["Descuento"].Value),
                    Cantidad       = Convert.ToInt16(row.Cells["Cantidad"].Value),
                    Precio         = Convert.ToDecimal(row.Cells["Precio"].Value)
                };

                oFactura.Lineas.Add(FacturaLinea);
            }

            Venta.RegistrarFacturaVenta(oFactura);

            LimpiarControles(false);
        }
コード例 #6
0
        public static void UpdateFactura(FacturaEncabezado oFacturaEncabezado)
        {
            List <SqlParameter> listaInsertar = new List <SqlParameter>();

            SqlParameter IdFacturaEncabezado = new SqlParameter("@P_IdFacturaEncabezado", oFacturaEncabezado.IdEncabezado);
            SqlParameter NumFac        = new SqlParameter("@P_IdProducto", oFacturaEncabezado.NumeroFactura);
            SqlParameter CodigoCliente = new SqlParameter("@P_CodigoEmpresa", oFacturaEncabezado.CodigoEmpresa);
            SqlParameter CodigoEmpresa = new SqlParameter("@P_CodigoClient", oFacturaEncabezado.CodigoCliente);
            SqlParameter Sub_Total     = new SqlParameter("@P_Sub_Total", oFacturaEncabezado.Sub_Total);
            SqlParameter Impuesto      = new SqlParameter("@P_Impuesto", oFacturaEncabezado.Impuesto);
            SqlParameter Total         = new SqlParameter("@P_Total", oFacturaEncabezado.Total);
            SqlParameter FechaFactura  = new SqlParameter("@P_FechaFactura", oFacturaEncabezado.FechaFactura);

            listaInsertar.Add(IdFacturaEncabezado);
            listaInsertar.Add(NumFac);
            listaInsertar.Add(CodigoCliente);
            listaInsertar.Add(CodigoEmpresa);
            listaInsertar.Add(Sub_Total);
            listaInsertar.Add(Impuesto);
            listaInsertar.Add(Total);
            listaInsertar.Add(FechaFactura);

            Conexion.EjecutarOperacion("FacturaEncabezadoUpdate", listaInsertar, CommandType.StoredProcedure);

            foreach (FacturaDetalle Linea in oFacturaEncabezado.Lineas)
            {
                List <SqlParameter> ListaDetalle = new List <SqlParameter>();

                SqlParameter IdFacEnc       = new SqlParameter("@P_IdFacturaEncabezado", Linea.IdFacturaEncabezado);
                SqlParameter IdProd         = new SqlParameter("@P_IdProducto", Linea.IdProducto);
                SqlParameter CodigoProducto = new SqlParameter("@P_CodigoProducto", Linea.CodigoProducto);
                SqlParameter NombreProducto = new SqlParameter("@P_NombreProducto", Linea.NombreProducto);
                SqlParameter descuento      = new SqlParameter("@P_Descuento", Linea.Descuento);
                SqlParameter cantidad       = new SqlParameter("@P_cantidad", Linea.Cantidad);

                ListaDetalle.Add(IdFacEnc);
                ListaDetalle.Add(IdProd);
                ListaDetalle.Add(CodigoProducto);
                ListaDetalle.Add(NombreProducto);
                ListaDetalle.Add(descuento);
                ListaDetalle.Add(cantidad);

                Conexion.EjecutarOperacion("FacturaDetalleUpdate", listaInsertar, CommandType.StoredProcedure);
            }
        }
コード例 #7
0
        public Operacion ActualziarFacturaPostPicking(FacturaEncabezado facturaEncabezado)
        {
            try
            {
                BaseDeDatosServicio.BeginTransaction();
                Operacion op;
                if (facturaEncabezado.INVOICE_ID < 0)
                {
                    op = ObtenerNumeroFactura(facturaEncabezado.CDF_RESOLUCION, facturaEncabezado.CDF_SERIE);
                }
                else
                {
                    op = new Operacion
                    {
                        Codigo = 0,
                        Resultado = ResultadoOperacionTipo.Exito,
                        Mensaje = "Proces exitoso",
                        Dato = facturaEncabezado.INVOICE_ID
                    };
                }
                var sb = new StringBuilder();
                sb.Append("UPDATE SONDA_POS_INVOICE_HEADER SET ");
                sb.AppendFormat("INVOICE_ID = {0}", op.ObtenerDato<string>());
                sb.AppendFormat(" ,TOTAL_AMOUNT = {0}", facturaEncabezado.TOTAL_AMOUNT);
                sb.Append(" ,INVOICED_DATETIME = GETDATE()");
                sb.AppendFormat(" ,CDF_INVOICENUM = {0}", op.ObtenerDato<string>());
                sb.AppendFormat(" ,CDF_SERIE = '{0}'", facturaEncabezado.CDF_SERIE);
                sb.AppendFormat(" ,CDF_NIT = '{0}'", facturaEncabezado.CDF_NIT);
                sb.AppendFormat(" ,CDF_NOMBRECLIENTE = '{0}'", facturaEncabezado.CDF_NOMBRECLIENTE);
                sb.AppendFormat(" ,CDF_RESOLUCION = '{0}'", facturaEncabezado.CDF_RESOLUCION);
                sb.AppendFormat(" ,VOID_DATETIME = CONVERT(DATETIME,'{0}')", facturaEncabezado.VOID_DATETIME.ToString("yyyy-MM-dd"));
                sb.AppendFormat(" ,VOID_REASON = '{0}'", facturaEncabezado.VOID_REASON);
                sb.AppendFormat(" ,VOID_NOTES = '{0}'", facturaEncabezado.VOID_NOTES);
                sb.AppendFormat(" ,CLOSED_ROUTE_DATETIME = CONVERT(DATETIME, '{0}')", facturaEncabezado.CLOSED_ROUTE_DATETIME.ToString("yyyy-MM-dd"));
                sb.AppendFormat(" ,CLEARING_DATETIME = CONVERT(DATETIME, '{0}')", facturaEncabezado.CLEARING_DATETIME.ToString("yyyy-MM-dd"));
                sb.AppendFormat(" WHERE INVOICE_ID = {0}", facturaEncabezado.INVOICE_ID);

                BaseDeDatosServicio.ExecuteNonQuery(sb.ToString(), CommandType.Text);

                sb.Length = 0;
                foreach (FacturaDetalle itemFacturaDetalle in facturaEncabezado.Detalle)
                {
                    sb.Append("UPDATE SONDA_POS_INVOICE_DETAIL SET ");
                    sb.AppendFormat("INVOICE_ID = {0}", op.ObtenerDato<string>());
                    sb.AppendFormat(" ,INVOICE_SERIAL = '{0}'", facturaEncabezado.CDF_SERIE);
                    sb.AppendFormat(" ,QTY = {0}", itemFacturaDetalle.QTY);
                    sb.AppendFormat(" ,PRICE = {0}", itemFacturaDetalle.PRICE);
                    sb.AppendFormat(" ,TOTAL_LINE = {0}", (itemFacturaDetalle.PRICE * itemFacturaDetalle.QTY));
                    sb.AppendFormat(" ,SERIE = '{0}'", itemFacturaDetalle.SERIE);
                    sb.AppendFormat(" ,SERIE_2 = '{0}'", itemFacturaDetalle.SERIE_2);
                    sb.AppendFormat(" ,REQUERIES_SERIE = '{0}'", itemFacturaDetalle.REQUERIES_SERIE);
                    sb.AppendFormat(" ,INVOICE_RESOLUTION = '{0}'", facturaEncabezado.CDF_RESOLUCION);
                    sb.AppendFormat(" WHERE INVOICE_ID = {0} AND LINE_SEQ = {1}", itemFacturaDetalle.INVOICE_ID, itemFacturaDetalle.LINE_SEQ);

                    BaseDeDatosServicio.ExecuteNonQuery(sb.ToString(), CommandType.Text);
                    sb.Length = 0;
                }
                BaseDeDatosServicio.Commit();
                return new Operacion { Codigo = 0, Dato = ObtenerFactura(Convert.ToInt32(op.ObtenerDato<string>())), Mensaje = "Proceso Exitoso", Resultado = ResultadoOperacionTipo.Exito };

            }
            catch (DbException e)
            {
                BaseDeDatosServicio.Rollback();
                return new Operacion
                {
                    Codigo = e.ErrorCode,
                    Mensaje = e.HumanReadMessage(),
                    Resultado = Tipos.ResultadoOperacionTipo.Error
                };
            }
            catch (Exception ex)
            {
                BaseDeDatosServicio.Rollback();
                return new Operacion
                {
                    Codigo = -1,
                    Mensaje = ex.Message,
                    Resultado = Tipos.ResultadoOperacionTipo.Error
                };
            }
        }