/// <summary> /// Ejecuta el metodo Grabar. /// </summary> /// <returns>El valor que se obtiene despues de ejecutar el metodo</returns> override public bool Grabar() { bool resultado = false; List <SqlParameter> parametros = new List <SqlParameter>(); SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@P_Id_Venta"; paramId.Value = Id_Venta; paramId.Direction = System.Data.ParameterDirection.InputOutput; parametros.Add(paramId); parametros.Add(new SqlParameter() { ParameterName = "@P_IdCliente", Value = Id_Cliente }); parametros.Add(new SqlParameter() { ParameterName = "@P_IdSucursal", Value = Id_Sucursal }); parametros.Add(new SqlParameter() { ParameterName = "@P_IdEmpleado", Value = Id_Empleado }); parametros.Add(new SqlParameter() { ParameterName = "@P_FechaVenta", Value = Fecha_Venta }); parametros.Add(new SqlParameter() { ParameterName = "@P_HoraVenta", Value = Hora_Venta }); parametros.Add(new SqlParameter() { ParameterName = "@P_IdCotizacion", Value = Id_Cotizacion }); parametros.Add(new SqlParameter() { ParameterName = "@P_Subtotal", Value = Subtotal }); parametros.Add(new SqlParameter() { ParameterName = "@P_IVA", Value = IVA }); parametros.Add(new SqlParameter() { ParameterName = "@P_IEPS", Value = IEPS }); parametros.Add(new SqlParameter() { ParameterName = "@P_Total", Value = Total }); parametros.Add(new SqlParameter() { ParameterName = "@P_FechaTipoCambio", Value = Fecha_Tipo_Cambio }); parametros.Add(new SqlParameter() { ParameterName = "@P_IdTipoCambio", Value = Id_Tipo_Cambio }); parametros.Add(new SqlParameter() { ParameterName = "@P_Comentario", Value = Comentario }); parametros.Add(new SqlParameter() { ParameterName = "@P_Status", Value = Status }); parametros.Add(new SqlParameter() { ParameterName = "@P_Descuento", Value = Descuento }); parametros.Add(new SqlParameter() { ParameterName = "@P_IdFactura", Value = Id_Factura }); parametros.Add(new SqlParameter() { ParameterName = "@P_MetodoPago", Value = Id_Metodo_pago }); parametros.Add(new SqlParameter() { ParameterName = "@P_Referencia", Value = Referencia }); parametros.Add(new SqlParameter() { ParameterName = "@P_IdTipoPago", Value = Id_Tipo_Venta }); parametros.Add(new SqlParameter() { ParameterName = "@P_SuPago", Value = Su_Pago }); parametros.Add(new SqlParameter() { ParameterName = "@P_SuCambio", Value = Su_Cambio }); parametros.Add(new SqlParameter() { ParameterName = "@P_Debe", Value = Debe }); parametros.Add(new SqlParameter() { ParameterName = "@P_IdPromocion", Value = Id_Promocion }); parametros.Add(new SqlParameter() { ParameterName = "@P_IVAimporte", Value = IVAimporte }); parametros.Add(new SqlParameter() { ParameterName = "@P_IEPSimporte", Value = IEPSimporte }); parametros.Add(new SqlParameter() { ParameterName = "@P_DescuentoPorCiento", Value = ISR_PorCiento }); parametros.Add(new SqlParameter() { ParameterName = "@P_Tipo", Value = Convert.ToInt32(TIPO) }); resultado = (BaseDatos.ejecutarProcedimiento(QueryGrabar, parametros) > 0); if (resultado && Id_Venta == -1) { Id_Venta = Convert.ToInt64(paramId.Value); } string empleado = string.Empty; foreach (VentaDetalle detalle in Detalles) { detalle.Id_Venta = Id_Venta; if (empleado.Length == 0) { empleado = detalle.Quien_Surte; } } if (resultado) { if (GrabarDetalle()) { if (!demostracion) { XtraImprimeTicket ticket = new XtraImprimeTicket(this); DevExpress.XtraReports.UI.ReportPrintTool pt = new DevExpress.XtraReports.UI.ReportPrintTool(ticket); try { pt.PrintingSystem.StartPrint += new PrintDocumentEventHandler(printingSystem_StartPrint); pt.Print(); } catch (Exception ex) { Log.Logger.ErrorException(ex.Message, ex); } } } if (TIPO == TIPO_MOVIMIENTO.VENTA) { ClientesCargos clientecargo = new ClientesCargos(); clientecargo.Tipo_Cargo = Id_Tipo_Venta; clientecargo.Fecha = Fecha_Venta; clientecargo.IdVenta = Id_Venta; clientecargo.IdCliente = Id_Cliente; clientecargo.Concepto = Comentario.Replace("Venta ", "Venta Folio No." + Id_Venta + " "); if (((TIPO_VENTA)Id_Tipo_Venta) == TIPO_VENTA.CONTADO) { clientecargo.Cargos = Convert.ToDouble(Total); clientecargo.Abonos = Convert.ToDouble(Total); clientecargo.Saldo = 0; } else { clientecargo.Cargos = Convert.ToDouble(Total); clientecargo.Abonos = Convert.ToDouble(Su_Pago); clientecargo.Saldo = Convert.ToDouble(Debe); } clientecargo.Estado = Status; clientecargo.Activo = true; clientecargo.Grabar(); if (((TIPO_VENTA)Id_Tipo_Venta) == TIPO_VENTA.CREDITO) { parametros.Clear(); parametros.Add(new SqlParameter() { ParameterName = "@P_Cliente_Id", Value = Id_Cliente }); parametros.Add(new SqlParameter() { ParameterName = "@P_Cantidad", Value = Debe }); resultado = (BaseDatos.ejecutarProcedimiento("Clientes_Saldo_Aumentar_sp", parametros) > 0); } } } return(resultado); }