public PedidoResponse PostPedido(Fcrmvh _pedido, string _tipoOperacion, bool pagoEfectivo) { string companyName = pagoEfectivo ? Configuration["CompanyNameEfectivo"] : Configuration["CompanyName"]; FC_RR_FCRMVH oFCRMVH = new FC_RR_FCRMVH("admin", Configuration["PasswordAdmin"], companyName, Configuration, Logger); oFCRMVH.InstancioObjeto(_tipoOperacion); Type typePedido = _pedido.GetType(); System.Reflection.PropertyInfo[] listaPropiedades = typePedido.GetProperties(); oFCRMVH.AsignoaTM <Fcrmvh>("FCRMVH", _pedido, 1); foreach (Fcrmvi item in _pedido.Items) { oFCRMVH.AsignoaTM <Fcrmvi>("FCRMVI", item, 2); } Save PerformedOperation = oFCRMVH.Save(); bool result = PerformedOperation.Result; string mensajeError = PerformedOperation.errorMessage; oFCRMVH.CloseObjectInstance(); if (result == false) { return(new PedidoResponse("Bad Request", mensajeError)); } return(new PedidoResponse("Pedido Generado Exitosamente")); }
public async Task <FacturaResponse> GraboFactura(Fcrmvh factura, string tipoOperacion) { Vtmclh cliente = await Context.Vtmclh.Where(c => c.VtmclhNrocta == factura.Fcrmvh_Nrocta).FirstOrDefaultAsync(); if (cliente == null) { return(new FacturaResponse("Bad Request", 0, $"El cliente {factura.Fcrmvh_Nrocta} no existe.")); } oFcrmvh.instancioObjeto(tipoOperacion); oFcrmvh.asignoaTMWizard("VIRT_CIRCOM", factura.Virt_Circom, Logger); oFcrmvh.asignoaTMWizard("VIRT_CIRAPL", factura.Virt_Cirapl, Logger); oFcrmvh.asignoaTMWizard("VIRT_CODCVT", factura.Virt_Codcvt, Logger); oFcrmvh.MoveNext(); Type typeFactura = factura.GetType(); IEnumerable <PropertyInfo> listaPropiedades = typeFactura.GetProperties() .Where(e => e.Name != "Virt_Circom" && e.Name != "Virt_Cirapl" && e.Name != "Virt_Codcvt"); foreach (PropertyInfo propiedad in listaPropiedades) { if (propiedad.PropertyType != typeof(ICollection <Fcrmvi07>)) { if (propiedad.PropertyType == typeof(ICollection <Fcrmvi>)) { foreach (Fcrmvi item in factura.Items) { oFcrmvh.asignoaTM("FCRMVI", "", item, 2, Logger); } } else { oFcrmvh.asignoaTM("FCRMVH", propiedad.Name, propiedad.GetValue(factura, null), 1, Logger); } } } string mensajeError = oFcrmvh.completaImpuestos(factura.Impuestos); if (mensajeError != "") { return(new FacturaResponse("Bad Request", 0, mensajeError)); } Save PerformedOperation = oFcrmvh.save(); //bool result = false; //string mensajeError = "Prueba sin grabar"; bool result = PerformedOperation.Result; mensajeError = PerformedOperation.errorMessage; oFcrmvh.closeObjectInstance(); if (result == false) { return(new FacturaResponse("Bad Request", 0, mensajeError)); } PerformedOperation.ComprobanteGenerado.Impuestos.AddRange(await RecuperoImpuestosComprobante(PerformedOperation.ComprobanteGenerado.ModuloComprobante, PerformedOperation.ComprobanteGenerado.CodigoComprobante, PerformedOperation.ComprobanteGenerado.NumeroComprobante)); PerformedOperation.ComprobanteGenerado.ImporteTotal = await RecuperoTotalComprobante(PerformedOperation.ComprobanteGenerado.ModuloComprobante, PerformedOperation.ComprobanteGenerado.CodigoComprobante, PerformedOperation.ComprobanteGenerado.NumeroComprobante); using (SqlConnection sql = new SqlConnection(Configuration.GetConnectionString("DefaultConnectionString"))) { using (SqlCommand cmd = new SqlCommand("Alm_ActualizaImpuVTRMVI", sql)) { cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@Modfor", PerformedOperation.ComprobanteGenerado.ModuloComprobante)); cmd.Parameters.Add(new SqlParameter("@Codfor", PerformedOperation.ComprobanteGenerado.CodigoComprobante)); cmd.Parameters.Add(new SqlParameter("@Nrofor", PerformedOperation.ComprobanteGenerado.NumeroComprobante)); await sql.OpenAsync(); await cmd.ExecuteNonQueryAsync(); } } return(new FacturaResponse("OK", 0, PerformedOperation.ComprobanteGenerado, "Comprobante generado")); }