public DtoLib.ResultadoId VentaDocumento_Agregar(DtoLibPosOffLine.VentaDocumento.Agregar ficha) { if (ficha.TipoDocumento == 1) { if (ficha.Items == null) { return(new DtoLib.ResultadoId() { Id = -1, Mensaje = "ITEMS NO DEFINIDO", Result = DtoLib.Enumerados.EnumResult.isError }); } if (ficha.Items.Count == 0) { return(new DtoLib.ResultadoId() { Id = -1, Mensaje = "NO HAY ITEMS QUE REGISTRAR", Result = DtoLib.Enumerados.EnumResult.isError }); } if (ficha.ItemsLimpiar == null) { return(new DtoLib.ResultadoId() { Id = -1, Mensaje = "ITEMS A ELIMINAR NO DEFINIDO", Result = DtoLib.Enumerados.EnumResult.isError }); } if (ficha.ItemsLimpiar.Count == 0) { return(new DtoLib.ResultadoId() { Id = -1, Mensaje = "NO HAY ITEMS QUE ELIMINAR", Result = DtoLib.Enumerados.EnumResult.isError }); } if (ficha.IsCredito == "N") { if (ficha.MetodosPago == null) { return(new DtoLib.ResultadoId() { Id = -1, Mensaje = "METODOS DE PAGO NO DEFINIDO", Result = DtoLib.Enumerados.EnumResult.isError }); } if (ficha.MetodosPago.Count == 0) { return(new DtoLib.ResultadoId() { Id = -1, Mensaje = "NO HAY METODOS DE PAGO QUE REGISTRAR", Result = DtoLib.Enumerados.EnumResult.isError }); } } } return(ServiceProv.VentaDocumento_Agregar(ficha)); }
public DtoLib.ResultadoId VentaDocumento_Agregar(DtoLibPosOffLine.VentaDocumento.Agregar ficha) { var result = new DtoLib.ResultadoId(); try { using (var cnn = new LibEntitySqLitePosOffLine.LeonuxPosOffLineEntities(_cnn.ConnectionString)) { using (var ts = cnn.Database.BeginTransaction()) { var fechaSistema = DateTime.Now.Date; //cnn.Database.SqlQuery<DateTime>("select date('now')").FirstOrDefault(); var mesRelacion = fechaSistema.Month.ToString().Trim().PadLeft(2, '0'); var anoRelacion = fechaSistema.Year.ToString(); var entSerie = cnn.Serie.FirstOrDefault(f => f.serie1.Trim().ToUpper() == ficha.Serie.Trim().ToUpper()); if (entSerie == null) { result.Mensaje = "SERIE DOCUMENTO NO ENCONTRADO"; result.Result = DtoLib.Enumerados.EnumResult.isError; return(result); } entSerie.correlativo += 1; cnn.SaveChanges(); var _documento = entSerie.correlativo.ToString().Trim().PadLeft(10, '0'); var entVenta = new LibEntitySqLitePosOffLine.Venta() { idJornada = ficha.IdJornada, idOperador = ficha.IdOperador, documento = _documento, fecha = fechaSistema.ToShortDateString(), idCliente = ficha.ClienteId, nombreRazonSocial = ficha.ClienteNombreRazonSocial, dirFiscal = ficha.ClienteDirFiscal, ciRif = ficha.ClienteCiRif, montoExento = ficha.MontoExento, montoBase = ficha.MontoBase, montoImpuesto = ficha.MontoImpuesto, base1 = ficha.MontoBase_1, base2 = ficha.MontoBase_2, base3 = ficha.MontoBase_3, impuesto1 = ficha.MontoIva_1, impuesto2 = ficha.MontoIva_2, impuesto3 = ficha.MontoIva_3, tasaIva1 = ficha.TasaIva_1, tasaIva2 = ficha.TasaIva_2, tasaIva3 = ficha.TasaIva_3, mesRelacion = mesRelacion, control = ficha.Control, descuentoMonto1 = ficha.MontoDescuento_1, descuentoMonto2 = ficha.MontoDescuento_2, cargoMonto1 = ficha.MontoCargo_1, descuentoPorc1 = ficha.PorcDescuento_1, descuentoPorc2 = ficha.PorcDescuento_2, cargoPorc_1 = ficha.PorcCargo_1, estatusActivo = 1, tipoDocumento = ficha.TipoDocumento, aplica = ficha.Aplica, montoSubTotalNeto = ficha.MontoSubTotalNeto, telefono = ficha.ClienteTelefono, factorCambio = ficha.FactorCambio, usuario = ficha.UsuarioDescripcion, usuarioCodigo = ficha.UsuarioCodigo, hora = ficha.HoraEmision, montoDivisa = ficha.MontoDivisa, estacion = ficha.Estacion, renglones = ficha.Renglones, anoRelacion = anoRelacion, autoUsuario = ficha.AutoUsuario, signo = ficha.SignoDocumento, serie = ficha.Serie, montoSubTotalImpuesto = ficha.MontoSubTotalImpuesto, montoSubTotal = ficha.MontoSubTotal, montoVentaNeta = ficha.MontoVentaNeta, montoCostoVenta = ficha.MontoCostoVenta, montoUtilidad = ficha.MontoUtilidad, montoUtilidadPorc = ficha.PorcUtilidad, montoTotal = ficha.MontoTotal, codigoSucursal = ficha.CodigoSucursal, prefijo = ficha.Prefijo, autoDeposito = ficha.AutoDeposito, codigoDeposito = ficha.CodigoDeposito, deposito = ficha.DescripcionDeposito, autoVendedor = ficha.AutoVendedor, codigoVendedor = ficha.CodigoVendedor, vendedor = ficha.NombreVendedor, autoCobrador = ficha.AutoCobrador, codigoCobrador = ficha.CodigoCobrador, cobrador = ficha.NombreCobrador, autoTransporte = ficha.AutoTransporte, codigoTransporte = ficha.CodigoTransporte, transporte = ficha.NombreTransporte, montoRecibido = ficha.MontoRecibido, cambioDar = ficha.CambioDar, esCredito = ficha.IsCredito, tarifa = ficha.Tarifa, saldoPendiente = ficha.SaldoPendiente, autoConceptoMov = ficha.AutoConceptoMov, codigoConceptoMov = ficha.CodigoConceptoMov, nombreConceptoMov = ficha.NombreConceptoMov, }; cnn.Venta.Add(entVenta); cnn.SaveChanges(); foreach (var rg in ficha.Items) { var entItem = new LibEntitySqLitePosOffLine.VentaDetalle() { idVenta = entVenta.id, autoDepartamento = rg.AutoDepartamento, autoGrupo = rg.AutoGrupo, autoProducto = rg.AutoProducto, autoSubGrupo = rg.AutoSubGrupo, autoTasa = rg.AutoTasa, cantidad = rg.Cantidad, cantidadUnd = rg.CantidadUnd, categoria = rg.Categoria, codigoProducto = rg.CodigoPrd, costoCompraUnd = rg.CostoCompraUnd, costoPromedioUnd = rg.CostoPromedioUnd, costoVenta = rg.CostoVenta, decimales = rg.Decimales, diaEmpaqueGarantia = rg.DiasEmpaqueGarantia, empaqueContenido = rg.EmpaqueContenido, empaqueDescripcion = rg.EmpaqueDescripcion, empaqueCodigo = rg.EmpaqueCodigo, montoDesc1 = rg.MontoDscto_1, montoDesc2 = rg.MontoDscto_2, montoDesc3 = rg.MontoDscto_3, montoIva = rg.MontoIva, NombreProducto = rg.NombrePrd, notas = rg.Notas, porctDesc1 = rg.PorcDscto_1, porctDesc2 = rg.PorcDscto_2, porctDesc3 = rg.PorcDscto_3, precioFinal = rg.PrecioFinal, precioItem = rg.PrecioItem, precioNeto = rg.PrecioNeto, precioSugerido = rg.PrecioSugerido, precioUnd = rg.PrecioUnd, tarifa = rg.TarifaPrecio, tasaIva = rg.TasaIva, total = rg.Total, totalNeto = rg.TotalNeto, utilidadMonto = rg.MontoUtilidad, utilidadPorct = rg.PorctUtilidad, totalDescuento = rg.TotalDescuento, tipoIva = rg.TipoIva, esPesado = rg.EsPesado, costoCompra = rg.CostoCompra, costoPromedio = rg.CostoPromedio, }; cnn.VentaDetalle.Add(entItem); cnn.SaveChanges(); } if (ficha.MetodosPago != null) { foreach (var mt in ficha.MetodosPago) { var entMetodo = new LibEntitySqLitePosOffLine.VentaPago() { idVenta = entVenta.id, tipoMedioCobro = mt.tipoMedioPago, autoMedioCobro = mt.autoMedioPago, codioMedioCobro = mt.codigoMedioPago, descripMedioCobro = mt.descripcionMedioPago, importe = mt.Importe, montoRecibido = mt.MontoRecibido, tasa = mt.Tasa, lote = mt.Lote, referencia = mt.Referencia, }; cnn.VentaPago.Add(entMetodo); cnn.SaveChanges(); } } foreach (var ie in ficha.ItemsLimpiar) { var entItemEliminar = cnn.Item.Find(ie.Id); if (entItemEliminar == null) { result.Result = DtoLib.Enumerados.EnumResult.isError; result.Mensaje = "ITEM VENTA NO ENCONTRADO "; return(result); } ; cnn.Item.Remove(entItemEliminar); cnn.SaveChanges(); } ts.Commit(); result.Id = (int)entVenta.id; } } } catch (Exception e) { result.Mensaje = e.Message; result.Result = DtoLib.Enumerados.EnumResult.isError; } return(result); }
public OOB.ResultadoId VentaDocumento_Agregar(OOB.LibVenta.PosOffline.VentaDocumento.Agregar ficha) { var rt = new OOB.ResultadoId(); var agregarDTO = new DtoLibPosOffLine.VentaDocumento.Agregar() { IdJornada = ficha.IdJornada, IdOperador = ficha.IdOperador, Aplica = ficha.Aplica, AutoUsuario = ficha.AutoUsuario, ClienteId = ficha.ClienteId, ClienteCiRif = ficha.ClienteCiRif, ClienteDirFiscal = ficha.ClienteDirFiscal, ClienteNombreRazonSocial = ficha.ClienteNombreRazonSocial, ClienteTelefono = ficha.ClienteTelefono, Control = ficha.Control, Documento = ficha.Documento, Estacion = ficha.Estacion, EstatusDocumento = ficha.IsDocumentoActivo ? 1 : 0, FactorCambio = ficha.FactorCambio, MontoBase = ficha.MontoBase, MontoBase_1 = ficha.MontoBase_1, MontoBase_2 = ficha.MontoBase_2, MontoBase_3 = ficha.MontoBase_3, MontoCargo_1 = ficha.MontoCargo_1, MontoCostoVenta = ficha.MontoCostoVenta, MontoDescuento_1 = ficha.MontoDescuento_1, MontoDescuento_2 = ficha.MontoDescuento_2, MontoDivisa = ficha.MontoDivisa, MontoExento = ficha.MontoExento, MontoImpuesto = ficha.MontoImpuesto, MontoIva_1 = ficha.MontoIva_1, MontoIva_2 = ficha.MontoIva_2, MontoIva_3 = ficha.MontoIva_3, MontoSubTotal = ficha.MontoSubTotal, MontoSubTotalImpuesto = ficha.MontoSubTotalImpuesto, MontoSubTotalNeto = ficha.MontoSubTotalNeto, MontoTotal = ficha.MontoTotal, MontoUtilidad = ficha.MontoUtilidad, MontoVentaNeta = ficha.MontoVentaNeta, PorcCargo_1 = ficha.PorcCargo_1, PorcDescuento_1 = ficha.PorcDescuento_1, PorcDescuento_2 = ficha.PorcDescuento_2, PorcUtilidad = ficha.PorcUtilidad, Renglones = ficha.Renglones, Serie = ficha.Serie, SignoDocumento = ficha.SignoDocumento, TasaIva_1 = ficha.TasaIva_1, TasaIva_2 = ficha.TasaIva_2, TasaIva_3 = ficha.TasaIva_3, TipoDocumento = (int)ficha.TipoDocumento, UsuarioCodigo = ficha.UsuarioCodigo, UsuarioDescripcion = ficha.UsuarioDescripcion, CodigoSucursal = ficha.CodioSucursal, Prefijo = ficha.PrefijoSucursal, AutoDeposito = ficha.AutoDeposito, CodigoDeposito = ficha.CodigoDeposito, DescripcionDeposito = ficha.DescripcionDeposito, AutoVendedor = ficha.AutoVendedor, CodigoVendedor = ficha.CodigoVendedor, NombreVendedor = ficha.NombreVendedor, AutoCobrador = ficha.AutoCobrador, CodigoCobrador = ficha.CodigoCobrador, NombreCobrador = ficha.NombreCobrador, AutoTransporte = ficha.AutoTransporte, CodigoTransporte = ficha.CodigoTransporte, NombreTransporte = ficha.NombreTransporte, MontoRecibido = ficha.MontoRecibido, CambioDar = ficha.CambioDar, IsCredito = ficha.IsCredito, HoraEmision = DateTime.Now.ToShortTimeString(), Tarifa = ficha.Tarifa, SaldoPendiente = ficha.SaldoPendiente, AutoConceptoMov = ficha.AutoConceptoMov, CodigoConceptoMov = ficha.CodigoConceptoMov, NombreConceptoMov = ficha.NombreConceptoMov, }; var agregarItemDto = ficha.Items.Select(s => { var t = new DtoLibPosOffLine.VentaDocumento.AgregarItem() { AutoDepartamento = s.AutoDepartamento, AutoGrupo = s.AutoGrupo, AutoProducto = s.AutoProducto, AutoSubGrupo = s.AutoSubGrupo, AutoTasa = s.AutoTasa, Cantidad = s.Cantidad, CantidadUnd = s.CantidadUnd, Categoria = s.Categoria, CodigoPrd = s.CodigoPrd, CostoCompraUnd = s.CostoCompraUnd, CostoPromedioUnd = s.CostoPromedioUnd, CostoVenta = s.CostoVenta, Decimales = s.Decimales, DiasEmpaqueGarantia = s.DiasEmpaqueGarantia, EmpaqueCodigo = s.EmpaqueCodigo, EmpaqueContenido = s.EmpaqueContenido, EmpaqueDescripcion = s.EmpaqueDescripcion, MontoDscto_1 = s.MontoDscto_1, MontoDscto_2 = s.MontoDscto_2, MontoDscto_3 = s.MontoDscto_3, MontoIva = s.MontoIva, MontoUtilidad = s.MontoUtilidad, NombrePrd = s.NombrePrd, Notas = s.Notas, PorcDscto_1 = s.PorcDscto_1, PorcDscto_2 = s.PorcDscto_2, PorcDscto_3 = s.PorcDscto_3, PorctUtilidad = s.PorctUtilidad, PrecioFinal = s.PrecioFinal, PrecioItem = s.PrecioItem, PrecioNeto = s.PrecioNeto, PrecioSugerido = s.PrecioSugerido, PrecioUnd = s.PrecioUnd, TarifaPrecio = s.TarifaPrecio, TasaIva = s.TasaIva, Total = s.Total, TotalNeto = s.TotalNeto, TotalDescuento = s.TotalDescuento, EsPesado = s.EsPesado?1:0, TipoIva = s.TipoIva, CostoCompra = s.CostoCompra, CostoPromedio = s.CostoPromedio, }; return(t); }).ToList(); agregarDTO.Items = agregarItemDto; var agregarMetodsPago = ficha.MetodosPago.Select(m => { var _tipoMedioPago = -1; switch (m.TipoMedioPago) { case OOB.LibVenta.PosOffline.VentaDocumento.Enumerados.EnumTipoMedioPago.Efectivo: _tipoMedioPago = 1; break; case OOB.LibVenta.PosOffline.VentaDocumento.Enumerados.EnumTipoMedioPago.Divisa: _tipoMedioPago = 2; break; case OOB.LibVenta.PosOffline.VentaDocumento.Enumerados.EnumTipoMedioPago.Electronico: _tipoMedioPago = 3; break; case OOB.LibVenta.PosOffline.VentaDocumento.Enumerados.EnumTipoMedioPago.Otros: _tipoMedioPago = 4; break; } var nr = new DtoLibPosOffLine.VentaDocumento.AgregarMetodoPago() { tipoMedioPago = _tipoMedioPago, autoMedioPago = m.autoMedioPago, codigoMedioPago = m.codigoMedioPago, descripcionMedioPago = m.descripcionMedioPago, Importe = m.Importe, MontoRecibido = m.MontoRecibido, Tasa = m.Tasa, Lote = m.Lote, Referencia = m.Referencia, }; return(nr); }).ToList(); agregarDTO.MetodosPago = agregarMetodsPago; var agregarItemsEliminarDto = ficha.ItemsEliminar.Select(s => { var nr = new DtoLibPosOffLine.VentaDocumento.AgregarItemLimpiar() { Id = s.IdEliminar, }; return(nr); }).ToList(); agregarDTO.ItemsLimpiar = agregarItemsEliminarDto; var r01 = MyData.VentaDocumento_Agregar(agregarDTO); if (r01.Result == DtoLib.Enumerados.EnumResult.isError) { rt.Mensaje = r01.Mensaje; rt.Result = OOB.Enumerados.EnumResult.isError; return(rt); } rt.Id = r01.Id; return(rt); }