public static TS_BEMensaje SynchronizedSetSale(TerminalSIGES.Models.Lado Cara, TS_BEArticulo Transaccion) { TS_BELoadInput cLoadingInput = TSSalesInput.LoadInput(); TS_BEClienteInput cClienteInput = TSSalesInput.InputClienteAutomaticMethod(Cara); TS_BECabeceraInput cCabeceraInput = TSSalesInput.InputCabeceraAutomaticMethod(Cara); TS_BEDetalleInput[] cDetalleInput = TSSalesInput.InputDetalleAutomaticMethod(Transaccion).ToArray(); List <TS_BEPagoInput> vPagos = TSSalesInput.InputPagosAutomaticMethod(Cara, Transaccion); TS_BEGrabarConfig vConfiguracion = new TS_BEGrabarConfig() { IsNotPrint = Cara.IsImprimir }; if (vPagos == null) { return(new TS_BEMensaje() { mensaje = "EL MONTO TOTAL NO COINCIDE CON LOS PAGOS DE LA VENTA", Ok = false }); } TS_BEPagoInput[] cPagoInput = vPagos.ToArray(); TSSalesInput.InputMoneyAutomaticMethod(Cara, cCabeceraInput, cDetalleInput, cPagoInput); TS_SISalesClient client = null; try { client = new TS_SISalesClient(Helper.ServicioSoapBinding(), new EndpointAddress(Config.Services.Sales)); TS_BERetornoTransaccion respuesta = client.GrabarTransaccion(cDetalleInput, cCabeceraInput, cPagoInput, cClienteInput, cLoadingInput, vConfiguracion); if (respuesta.Ok) { return(new TS_BEMensaje() { mensaje = respuesta.Codigo, Ok = true }); } else { return(new TS_BEMensaje() { mensaje = respuesta.Mensaje, Ok = false }); } } catch (Exception e) { if (client != null) { if (client.State == CommunicationState.Opened) { client.Close(); } } return(new TS_BEMensaje() { mensaje = e.Message, Ok = false }); } }
public static List <TS_BEDetalleInput> Inputcdetalle(TS_BECabeceraInput cCabecera) { List <TS_BEDetalleInput> cDetalleTodo = new List <TS_BEDetalleInput>(); foreach (var item in TSSalesApp.Detalles) { cDetalleTodo.Add(new TS_BEDetalleInput() { item = item.item, cdarticulo = item.cdarticulo, cdarticulosunat = item.cdarticulosunat, dsarticulo = item.dsarticulo, precio = item.precio, cantidad = item.cantidad, total = item.total, impuesto = item.impuesto, mtodscto = item.mtodscto, mtoimpuesto = item.mtoimpuesto, subtotal = item.subtotal, moverstock = item.moverstock, cara = item.cara, costo = item.costo, cdunimed = item.cdunimed, nrogasboy = item.nrogasboy, precio_orig = item.precio_orig, // redondea_indecopi = item.redondea_indecopi, tpformula = item.tpformula, impuesto_plastico = item.impuesto_plastico, valorconversion = item.valorconversion, cdmedequiv = item.cdmedequiv, tpconversion = item.tpconversion }); } return(cDetalleTodo); }
public static async Task <SalesEstado> GrabarVenta(bool ConIgv, bool IsCanje, bool IsNoImprimir) { SalesEstado Respuesta = SalesEstado.ErrorSistema; await Task.Run(() => { TS_SISalesClient cliente = null; try { TSCustomerApp.IsCanje = IsCanje; cliente = new TS_SISalesClient(Helper.ServicioSoapBinding(), new EndpointAddress(Config.Services.Sales)); cDetalleInput = new TS_BEDetalleInput[] { }; cCabeceraInput = new TS_BECabeceraInput(); cClienteInput = new TS_BEClienteInput(); cCabeceraInput = TSSalesInput.InputcCabecera(); cClienteInput = TSSalesInput.InputcCliente(); cDetalleInput = TSSalesInput.Inputcdetalle(cCabeceraInput).ToArray(); cLoadingInput = new TS_BELoadInput(); cLoadingInput = TSSalesInput.LoadInput(); vConfiguracion = new TS_BEGrabarConfig() { IsNotPrint = IsNoImprimir }; if (ConIgv) { TSSalesInput.RecalcularIGV(cDetalleInput); } _GrabarTransaccionCompleted(cliente.GrabarTransaccion(cDetalleInput, cCabeceraInput, cPagoInput, cClienteInput, cLoadingInput, vConfiguracion)); Respuesta = SalesEstado.EsperandoRespuesta; } catch { Respuesta = SalesEstado.ErrorSistema; } finally { if (cliente != null) { if (cliente.State == CommunicationState.Opened) { cliente.Close(); } } } }); return(Respuesta); }
public static TS_BEPagoInput InputcPago(TS_BECabeceraInput cCabecera) { TS_BEPagoInput cPago = new TS_BEPagoInput(); cPago.cdbanco = ""; cPago.cdtarjeta = ""; cPago.cdtppago = ""; cPago.mtopagodol = 0; cPago.mtopagosol = 0;//TSSalesApp.; cPago.nrocheque = ""; cPago.nrocuenta = ""; cPago.nrotarjeta = ""; return(cPago); }
public static void InputMoneyAutomaticMethod(TerminalSIGES.Models.Lado Cara, TS_BECabeceraInput cCabecera, TS_BEDetalleInput[] cDetalles, TS_BEPagoInput[] cPagos) { if (Cara.Documento == TerminalSIGES.Models.EDocumento.Canje || Cara.Documento == TerminalSIGES.Models.EDocumento.NotaDespacho || Cara.Documento == TerminalSIGES.Models.EDocumento.TranferenciaGratuita) { return; } decimal TotalProducto = 0; decimal TotalPagos = 0; foreach (TS_BEDetalleInput item in cDetalles) { TotalProducto += item.total; } foreach (TerminalSIGES.Models.Pago Pago in Cara.Pagos) { TotalPagos += (Pago.Dolares * TSSalesApp.TipoCambio) + (Pago.Soles); } cCabecera.mtovueltosol = TotalPagos > TotalProducto ? TotalPagos - TotalProducto : 0; }
public static TS_BECabeceraInput InputcCabecera() { TS_BECabeceraInput cCabecera = new TS_BECabeceraInput(); cCabecera.TipoVenta = TSSalesApp.TipoVenta; cCabecera.cdcliente = TSCustomerApp.ClientOuput.cdcliente; cCabecera.cdmoneda = "S"; cCabecera.cdtipodoc = TSCustomerApp.TipoComprobante.Nro; cCabecera.cdusuario = TSLoginApp.UserName; cCabecera.cdvendedor = ""; cCabecera.chofer = TSSalesApp.vCabecera.chofer; cCabecera.mtovueltodol = TSSalesApp.vCabecera.mtovueltodol; cCabecera.mtovueltosol = TSSalesApp.vCabecera.mtovueltosol; cCabecera.nroplaca = TSSalesApp.vCabecera.nroplaca; cCabecera.nrotarjeta = TSSalesApp.vCabecera.nrotarjeta; cCabecera.observacion = ""; cCabecera.odometro = TSSalesApp.vCabecera.odometro; cCabecera.redondea_indecopi = 0; cCabecera.rscliente = TSCustomerApp.ClientOuput.rscliente; cCabecera.ruccliente = TSCustomerApp.ClientOuput.ruccliente; cCabecera.dsusuario = TSLoginApp.UserFull; return(cCabecera); }